考虑以下代码
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]