【发布时间】:2019-10-29 12:25:23
【问题描述】:
我有两个项目 ID 为 522 的文件,我想从第一个文件中提取它们。
以下代码可用于提取,但我不想手动重复 522 次 data$projectID==datid[x, ] |
data1 = data[(data$projectID==datid[1, ] |data$projectID==datid[2, ]| ...| data$projectID==datid[522, ]), ]
如何将指令重复522次,每次加一。
谢谢!!
data = read.csv("~/Desktop/PACA SNA/PACA3.csv", header = TRUE, sep =";")
datid= read.csv("~/Desktop/PACA SNA/PACAID.csv", header = FALSE, sep =";")
data1 = data[(data$projectID==datid[1, ] | ...| data$projectID==datid[522, ]), ]
【问题讨论】:
-
看看
?merge -
您离提交stackoverflow.com/help/minimal-reproducible-example 不远了,这将大大增加获得好答案的机会。话虽这么说,我和@Sotos 在一起:如果可以,请尝试
merge。 -
一般情况下,对于反模式
x == a | x == b | ...,解决方案是x %in% c(a, b, ...)。在这种情况下,data1 = data[data$projectID %in% vector_of_ids]。如果datid是向量,则vector_of_ids必须是datid,或者如果datid是一个数据框,则ID 位于名为"id_column"的列中。