我在堆栈中找不到解决方案,所以这是我的问题:
- 我有一个包含 342 列的 df。
- 我想创建一个仅包含特定列的新 df
- 要保留的列列表位于另一个 df 中,在 3 个新数据帧的标题为 X、Y、Z 的 3 列中列出
这是我现在的代码:
# Read the data:
data <- data.table::fread("data_30_9.csv")
# Import variable names #
variable.names.full = openxlsx::read.xlsx("variables2.xlsx")
Y.variable.names = na.omit(variable.names.full[1])
X.variable.names = na.omit(variable.names.full[2])
Z.variable.names = na.omit(variable.names.full[3])
# Make new DF with only specific columns:
X.Data = data %>% select(as.character(X.variable.names)) # This works as X has only 1 variable
Y.Data = data %>% select(as.character(Y.variable.names)) # This give an error: Error:
# # Can't subset columns that don't exist.
帮忙?
数据可在此处获取:
最佳答案
问题是 Y.variable.names
是一个 data.frame
,您不能使用它来子集另一个 data.frame
。
您可以通过输入class(Y.variable.names)
进行检查。
因此,问题的解决方案是子集 Y.variable.names
:
Y.Data = data %>% select(Y.variable.names[,1])
关于r - 选择特定列,其中列名在r中的另一个df中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64476850/