各位好,最近開始才接觸R,想請問一個問題:
df=scan(file="D:/download/data.txt")
df (這是一筆50個值的資料)
x=df[1:50]
y=ifelse(x<=0.2,1,0)
F=sum(y)
F
這是將50筆資料,若小於等於0.2,定義為1;大於0.2定義為0的code,再加起來為10,到這裡沒問題
但我想用個迴圈,一次跑0.2、0.4、0.6、0.8、1.0,所以我弄出了這個
for (t in c(0.2,0.4,0.6,0.8,1.0)){
y=ifelse(x<=t,1,0)
}
sum(y)
而它顯示為35,意思是他只有加t=1.0的部分,
請問有沒有一個方法,可以一次跑出5個sum(t<=0.2 0.4 ... 1.0)?
謝謝大家
試試看
for (t in c(0.2,0.4,0.6,0.8,1.0)){
y=ifelse(x<=t,1,0)
sum(y)
}
threads <- seq(0.2, 1, 0.2)
output <- lapply(threads, function(t, d) sum(d <= t), d = df)
names(output) <- threads
output