Birden çok sütunlu bir veri çerçevem var. Veri çerçevesindeki her satır için, satırdaki bir işlevi çağırmak istiyorum ve işlevin girişi bu satırdan birden çok sütun kullanıyor. Örneğin, bu veriye ve iki argümanı kabul eden bu testFunc'a sahip olduğumuzu varsayalım:
> df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6))
> df
x y z
1 1 3 5
2 2 4 6
> testFunc <- function(a, b) a + b
Diyelim ki bu testFunc öğesini x ve z sütunlarına uygulamak istiyorum. Yani, satır 1 için 1 + 5 istiyorum ve satır 2 için 2 + 6 istiyorum. Bunu bir for döngüsü yazmadan yapmanın bir yolu var mı, belki Apply işlev ailesi ile?
Bunu denedim:
> df[,c('x','z')]
x z
1 1 5
2 2 6
> lapply(df[,c('x','z')], testFunc)
Error in a + b : 'b' is missing
Ama hata var mı?
EDIT: Aramak istediğim gerçek işlev basit bir toplam değil, power.t.test. A + b'yi sadece örnek amaçlı kullandım. Nihai hedef, şöyle bir şey yapabilmek (sözde kodla yazılmış):
df = data.frame(
delta=c(delta_values),
power=c(power_values),
sig.level=c(sig.level_values)
)
lapply(df, power.t.test(delta_from_each_row_of_df,
power_from_each_row_of_df,
sig.level_from_each_row_of_df
))
burada sonuç her bir df satırı için power.t.test için bir çıkış vektörüdür.
dplyr
.