我正在尝试从第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”,我希望列中有一个数字。
答案 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")