【发布时间】:2017-03-06 08:19:21
【问题描述】:
我将lapply() 与一个函数一起使用,但不是在每次迭代中只获取一个变量的名称,而是从我的数据集中获取每个变量名称。
colnames(data) <- c("var1", "var2")
varnames <- function(var, name){
return(name)
}
print(lapply(data, varnames, name=names(data)))
我得到这个输出:
$var1
[1] "var1" "var2"
$var2
[1] "var1" "var2"
但是,我想得到:
$var1
[1] "var1"
$var2
[1] "var2"
【问题讨论】:
-
您有一个 2 列数据集,当您执行
lapply时,它会循环遍历列,即向量列表。在以这种方式指定name = names(data)之前,您正在获取每个变量名称。 -
@akrun 我明白了......但是我怎样才能得到一个变量名而不是每个变量名?第一个变量的名字第一次,第二个之后...
-
as.list(colnames(data))会做你想做的事吗? -
您可以在
names(data)上使用lapply,并使用function(x) { print(x); print(dt[[x]]) }等函数来操作数据。