Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
标记R中相同参考号的其他出现_R_Data.table - Fatal编程技术网

标记R中相同参考号的其他出现

标记R中相同参考号的其他出现,r,data.table,R,Data.table,我有一个很大的数据集,将近一百万个观察值代表一个人。每个人的每个动作都会单独记录,但每个人都有一个唯一的参考号,用于识别他们。使用一个特定的特征,我标记了某些行。我现在要做的是从列表中删除该参考号的所有引用,该列表甚至曾经被标记过。我使用的标志是二进制标志 我是R的业余爱好者 如何继续?您可以在数据框上使用子集。我冒昧地为您的案例生成了一个测试数据帧 # Just for generating the test data for demo purposes. dataframe <- da

我有一个很大的数据集,将近一百万个观察值代表一个人。每个人的每个动作都会单独记录,但每个人都有一个唯一的参考号,用于识别他们。使用一个特定的特征,我标记了某些行。我现在要做的是从列表中删除该参考号的所有引用,该列表甚至曾经被标记过。我使用的标志是二进制标志

我是R的业余爱好者


如何继续?

您可以在数据框上使用
子集。我冒昧地为您的案例生成了一个测试数据帧

# Just for generating the test data for demo purposes.
dataframe <- data.frame(1:5)
dataframe <- cbind(dataframe,c(1,0,1,0,0),rep(999,5))
colnames(dataframe) <- c("id","flag","data")

# Subset the data frame according to the flag.
selecteddata <- subset(dataframe, as.logical(dataframe$flag))
结果是:

> selecteddata
  id flag data
1  1    1  999
3  3    1  999
你能行

DT[, if (all(!flagged)) .SD, by=id]
# or
DT[, .SD[all(!flagged)], by=id]

只保留没有标志的ID。

请阅读有关和如何提供标志的信息。这将使其他人更容易帮助您。例如:
df1[df1$id%in%unique(df1[df1$flag!=“flagged”,“id”]),]
Yes,我理解子集部分,但id在某些情况下是相同的,我希望删除具有相同id的所有观察实例,即使只标记了其中一个。我希望最终使用“having”参数使语法变得更自然。目前有一个开放的(可能是低优先级的)FR
DT[, if (all(!flagged)) .SD, by=id]
# or
DT[, .SD[all(!flagged)], by=id]