将函数应用于 data.frame 中的命名变量
Apply a function to named variables in data.frame
我有一个 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
的子集?这意味着在 alist
中命名的 a
中的变量将替换为函数的输出,其余变量保持不变。
我总是可以 运行 一个函数,例如 log(a[alist])
并将输出与 a
合并,但必须有更直接的方法吗?
这通常有效:
a[,alist] <- sapply(a[,alist], ...)
以下作品:
a[alist] = apply(a[alist], 2, log)
以上替换值仅记录在 "alist".
中指定的数据框 "a" 的那些列
我有一个 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
的子集?这意味着在 alist
中命名的 a
中的变量将替换为函数的输出,其余变量保持不变。
我总是可以 运行 一个函数,例如 log(a[alist])
并将输出与 a
合并,但必须有更直接的方法吗?
这通常有效:
a[,alist] <- sapply(a[,alist], ...)
以下作品:
a[alist] = apply(a[alist], 2, log)
以上替换值仅记录在 "alist".
中指定的数据框 "a" 的那些列