数据帧中的子集列由dplyr中的select使用行值

时间:2018-04-20 15:06:50

标签: r dplyr

我希望通过第一行中的条目对数据框进行子集化。例如:

col1 <- c("blue", 2, "small")
col2 <- c("red", 4, "large")
col3 <- c("green", 3, "medium")

df <- data.frame(col1, col2, col3)

...我想根据第一个条目“红色”将df子集到col2。如果有两列符合该标准,例如:

col1 <- c("blue", 2, "small")
col2 <- c("red", 4, "large")
col3 <- c("green", 3, "medium")
col4 <- c("red", 5, "small")

df <- data.frame(col1, col2, col3, col4)

... cols 2&amp;应退回4。

我看了this answer我的问题 - 答案是5年之久,所以我希望在select中使用dplyr可以有更优雅的方式。

感谢。

1 个答案:

答案 0 :(得分:1)

可以在没有dplyr的情况下选择它们。

df <- data.frame(col1, col2, col3, col4)    
df[,df[1,] == "red", drop = F]
#    col2  col4
# 1   red   red
# 2     4     5
# 3 large small