如何在for循环中为列名添加别名?

如何在for循环中为列名添加别名?,r,R,我在做一个函数,我想用一种特殊的方式调用一个列 初始化数据 a <- c(1,2,3,4,5) b <- c(6,7,8,9,10) c <- c(1,2,3,4,5) d <- c(6,7,8,9,10) df <- as.data.frame(cbind(a,b,c,d)) 对于我正在使用的函数,我必须用表格(X$a,X$b)的形式创建一个表格,我不知道如何在for循环中实现这一点?您需要使用两个[[来获取列的内容: df <- datasets::m

我在做一个函数,我想用一种特殊的方式调用一个列

初始化数据

a <- c(1,2,3,4,5)
b <- c(6,7,8,9,10)
c <- c(1,2,3,4,5)
d <- c(6,7,8,9,10)
df <- as.data.frame(cbind(a,b,c,d))

对于我正在使用的函数,我必须用
表格(X$a,X$b)
的形式创建一个表格,我不知道如何在for循环中实现这一点?

您需要使用两个
[[
来获取列的内容:

 df <- datasets::mtcars
 for (i in 1:2) df[[i]]
但不确定你想达到什么目标。你也可以这样做:

lapply(df[1:2], table)

您需要使用两个
[[
来获取列的内容:

 df <- datasets::mtcars
 for (i in 1:2) df[[i]]
但不确定你想达到什么目标。你也可以这样做:

lapply(df[1:2], table)

不必使用列名调用
,您可以使用列索引并在函数中使用它,这样就不必担心如何调用列

为循环更换
,然后使用

table(df[1:2])

这将为您提供预期的结果。

您可以使用列索引并在函数中使用它,而不必担心如何调用列,而不用使用列名称调用

循环更换
,然后使用

table(df[1:2])

这将为您提供预期的结果。

您还可以使用列索引在
列中循环。在以下代码中,您可以在
iris
数据集列中循环:

for(i in 1:length(colnames(iris))){
  print(iris[,i]) # to get single column
  print(iris[,c(i,i+1)]) # to get multiple column data
}

您还可以使用列索引在
col
中循环。在以下代码中,您可以在
iris
数据集列中循环:

for(i in 1:length(colnames(iris))){
  print(iris[,i]) # to get single column
  print(iris[,c(i,i+1)]) # to get multiple column data
}

循环的作用是什么?你可以做
表格(df[1:2])
而不是
表格(X$a,X$b)
。就是这样!谢谢ronak
循环的作用是什么?你可以做
表格(df[1:2])
而不是
表格(X$a,X$b)
。就是这样!谢谢ronak