将函数应用于data.frame中的命名变量

时间:2016-09-15 11:50:13

标签: r dataframe apply

我有一个data.frame a,一个变量名为alist的矢量:

a <- data.frame(x1=rnorm(20),x2=rnorm(20),x3=rnorm(20),x4=rnorm(20),x5=rnorm(20),x6=rnorm(20),x7=rnorm(20),x8=rnorm(20),x9=rnorm(20),x10=rnorm(20))
alist<-c("x3","x4","x7","x9")

如何将函数应用于a,使其仅以alist的方式影响a中的变量名称?这意味着a中命名的变量alist被函数的输出替换,其余的变量保持不变。

我总是可以运行一个函数,例如log(a[alist])并将输出与a合并,但必须有更直接的方法吗?

2 个答案:

答案 0 :(得分:0)

这通常有效:

a[,alist] <- sapply(a[,alist], ...) 

答案 1 :(得分:0)

以下作品:

a[alist] = apply(a[alist], 2, log)

上面替换值只登录数据帧的那些列&#34; a&#34;在&#34; alist&#34;中指定。