我有一个非常简单的数据集,
a <- c(29, 10, 29)
b <- c(32, 23, 43)
c <- c(33,22,1)
df1 <- data.frame(a, b, c)
我想从a
的向量c
和df1
创建一个新的数据帧。我正在运行以下命令
df2 <- data.frame(df1$a, df1$c)
它正在创建具有变量名df.a
和df.c
的数据框。有什么办法可以使变量名与df1
中的完全一样?
答案 0 :(得分:0)
我认为您的a,b,c变量不再直接可用
colnames(df2) <- c("a", "c")
应该做到这一点吗?
答案 1 :(得分:0)
df1[,c("a","c")]
如果仅选择列:df1[,"a",drop=FALSE]
。
总是包含drop=FALSE
来处理一般情况:
selectedColumns <- c("a","c")
df1[, selectedColumns, drop=FALSE]
答案 2 :(得分:0)
如果您的实际应用程序比仅仅获取一个子集还要复杂(这似乎是一个很好的解决方案),则可以使用setNames
(在这里没有多大意义,但是如果您尝试尝试的话可能会有所帮助)在构造时自动重命名数据框...):
df2 <- setNames(df1[, c('a', 'b')], names(df1[, c('a', 'b')]) )