删除第一行中带有特定字母的列

时间:2016-01-04 03:36:23

标签: r

假设我创建了以下data.frame:

f <- c("a",2,3,8,7)
g <- c("b",4,1,8,14)
h <- c("abc",7,3,1,4)
i <- c("a",2,3,8,4)
df <- data.frame(f,g,h,i)

如何通过要求R删除第一行中具有“a”的列来删除列gh(在示例中,仅保留fi

2 个答案:

答案 0 :(得分:0)

我们可以使用grep根据第一行值选择列。我们在对第一行进行子集化后unlist列,使用模式为"a",后跟字符串的开头(^),后跟字符串的结尾(^$ ),即字符串中只有一个字符,它是"a"。使用逻辑索引对列进行子集化。

 df[grepl('^a$', unlist(df[1,]))]

注意:灵感来自@Ananda Mahto的评论。

答案 1 :(得分:0)

如果您要检查“a”,那么您可以使用==

df[,df[1,] == "a"]