考虑以下代码
a = "col1"
b = "col2"
d = data.frame(a=c(1,2,3),b=c(4,5,6))
此代码生成以下数据帧
a b
1 1 4
2 2 5
3 3 6
然而,所需的数据帧是
col1 col2
1 1 4
2 2 5
3 3 6
此外,我希望能够做类似的事情,d$a
然后抓住d$col1
a = "col1"
如何告诉 R 这"a"
是一个变量而不是列名?
创建数据框后,您需要使用?colnames。例如,您将拥有:
d = data.frame(a=c(1,2,3), b=c(4,5,6))
colnames(d) <- c("col1", "col2")
您还可以在创建数据框时命名变量。例如:
d = data.frame(col1=c(1,2,3), col2=c(4,5,6))
此外,如果您将列的名称存储在变量中,如
a <- "col1"
您不能使用$
通过d$a
. R 将查找名称为 的列a
。相反,您可以选择d[[a]]
或d[,a]
。
你可以这样做
a = "col1"
b = "col2"
d = data.frame(a=c(1,2,3),b=c(4,5,6))
>d
a b
1 1 4
2 2 5
3 3 6
#Renaming the columns
names(d) <- c(a,b)
> d
col1 col2
1 1 4
2 2 5
3 3 6
#Calling by names
d[,a]