【发布时间】:2017-11-26 10:13:06
【问题描述】:
我有一个大的散布数据框:
df: a1 a2 a3 a4 a5 ...............
r w sd w y ........
我有另一个输入,它是 df 的子集。
subset_df: a3 a4 a5
f e u
我的目标是获取subset_df 的列名,在df 中选择这些列并从那里继续(在我的情况下是比较值)。
当我以简单的方式执行此操作时:
df[,names(subset_df)] 可以工作,但为什么它拒绝与dplyr select 一起工作?
这是运行时的错误:
names_sub_df <- names(subset_df)
df %>% select(names_sub_df)
Error: All select() inputs must resolve to integer column positions.
The following do not:
* as.vector(names_sub_df)
这是一个可重现的例子:
key <- c("a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13", "a14", "a15", "a16", "a17", "a18")
value <- c("G", "CTT", "C", "C", "G", "C", "T", "C", "C", "C", "G", "T", "C", "G", "T", "A", "T", "G")
test2 <- data.frame(key, value, stringsAsFactors = FALSE)
图书馆(tidyr)
【问题讨论】:
-
也许,一个可重现的例子会有所帮助......
-
@Christoph 更新我的问题,抱歉。
-
@Christoph 请告诉我为什么会发生错误?我错过了什么?
标签: r select dataframe error-handling dplyr