【问题标题】:select a row based on another row in a data frame根据数据框中的另一行选择一行
【发布时间】:2016-09-09 23:23:17
【问题描述】:

我的数据是这样的

df <- structure(list(V1 = 1:15, V2 = structure(c(5L, 9L, 7L, 8L, 10L, 
2L, 13L, 3L, 11L, 12L, 15L, 1L, 4L, 14L, 6L), .Label = c("A0A087WNY6", 
"B2RTL5", "B8JJX9", "D3Z2H7", "E9PZ97", "G3UWX1", "Q2VWQ4", "Q3TMB5", 
"Q3TWK2", "Q6ZPS9", "Q7TMW3", "Q8BP71", "Q8R4K2", "Q925B0", "Q9WU01"
), class = "factor"), V3 = c(5L, 7L, 10L, 11L, 13L, 15L, NA, 
NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("V1", "V2", "V3"
), class = "data.frame", row.names = c(NA, -15L))

我想根据第三列值从前两列中选择行

预期的输出是这样的

5   Q6ZPS9
7   Q8R4K2
10  Q8BP71
11  Q9WU01
13  D3Z2H7
15  G3UWX1

【问题讨论】:

  • @rawr 我尝试的唯一方法是 Anatta 说,我尝试了许多不同的方法,但问题是它来自更复杂的结构。所以我设法从这些数据中提取出来并让它变得简单。有什么解决办法请拍,
  • 哦,抱歉,我删除了它,因为它不是很笼统。是na.omit(df)[3:2]
  • @Richard Scriven 谢谢我喜欢它

标签: r


【解决方案1】:

我觉得V3 不应该在这个数据框中,而应该是一个不同的向量。但这里有一个方法

df[df$V1 %in% df$V3,1:2]

【讨论】:

  • 我喜欢你的解决方案,它肯定给了我答案。我更愿意多呆一会儿,看看其他人会给出什么(只是为了了解更多),但您的解决方案简单、漂亮、快速,谢谢。
猜你喜欢
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
相关资源
最近更新 更多