r - 选择特定列,其中列名在r中的另一个df中

标签 r dataframe dplyr tidyverse

我在堆栈中找不到解决方案,所以这是我的问题:

  • 我有一个包含 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.

帮忙?

数据可在此处获取:

  1. https://github.com/amirnakar/TammyA/blob/main/data_30_9.csv
  2. https://github.com/amirnakar/TammyA/blob/main/Variables2.xlsx

最佳答案

问题是 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/

相关文章:

R:计算唯一条目的累积数量

R,ggplot2 : creating a single legend in a bubble chart with positive and negative values

python - 将函数应用于 Pandas 行-行叉积

r - 将数据框添加到每个列表元素

r - 计算每组中的行数

sql - R中的交互式绘图

r - 将列表的索引添加到 bind_rows?

r - 将计数标签添加到聚类条形图 ggplot2

r - 如何从R中的向量创建边缘列表

r - 当没有匹配项时,如何防止 select() 检索空数据框?