R:查找相应的行值

时间:2016-06-03 22:43:58

标签: r

我正在尝试从第2列获取与第2列匹配但仅在“B”值上的数据。需要以某种方式使真正的值成为一个列表。 需要重复50,000行。其中约有37,000个是真的。 我对此非常陌生,所以任何帮助都会很好。

Data <- data.frame(
X = sample(1:10),
Y = sample(c("B", "W"), 10, replace = TRUE)
)
Count <- 1
If(data[count,2] == "B") {
  List <- list(data[count,1]
  Count <- count + 1
#I'm not sure what to use to repeat I just put
Repeat
} else {
Count <- count + 1
Repeat
}

最终结果应该只是第一列数据的列表()。 在此,如果行1-5具有“B”,我希望列中有一个数字。

1 个答案:

答案 0 :(得分:0)

不确定我是否理解你正在寻找什么,但从评论中我会认为这可能会有所帮助:

setNames(data.frame(Data[1][Data[2]=="B"]), "selected")
#  selected
#1        2
#2        5
#3        7
#4        6

不需要循环。

数据

Data <- structure(list(X = c(10L, 4L, 9L, 8L, 3L, 2L, 5L, 1L, 7L, 6L), 
              Y = structure(c(2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L), 
             .Label = c("B", "W"), class = "factor")), 
             .Names = c("X", "Y"), row.names = c(NA, -10L), 
              class = "data.frame")