可能重复:
从数据框中删除多个元素的标准方法
我知道在R中,如果你正在搜索另一个组的子集或基于id的匹配,你会使用类似的东西
subset(df1, df1$id %in% idNums1)
Run Code Online (Sandbox Code Playgroud)
我的问题是如何做相反的事情或选择不匹配ids矢量的项目.
我尝试使用!但收到错误消息
subset(df1, df1$id !%in% idNums1)
Run Code Online (Sandbox Code Playgroud)
我认为我的备份是这样做的:
matches <- subset(df1, df1$id %in% idNums1)
nonMatches <- df1[(-matches[,1]),]
Run Code Online (Sandbox Code Playgroud)
但我希望有一些更高效的东西.
我正在尝试识别数据框中不匹配的值,但无法弄清楚如何执行此操作.
# make data frame
a <- data.frame( x = c(1,2,3,4))
b <- data.frame( y = c(1,2,3,4,5,6))
# select only values from b that are not in 'a'
# attempt 1:
results1 <- b$y[ !a$x ]
# attempt 2:
results2 <- b[b$y != a$x,]
Run Code Online (Sandbox Code Playgroud)
如果a = c(1,2,3)这样可行,那么a就是多个b.不过,我想只要选择从数据帧中的所有值y,不在x,不知道什么函数使用.
你最喜欢的单人班车是R什么?
请包含一个简短的伴随示例,并限制每个帖子一个提示.注意,;是作弊.
示例:计算x[i] / x[i-1]向量x,
x <- 1:10
Reduce("/", as.data.frame(embed(x, 2)))
Run Code Online (Sandbox Code Playgroud)
(从R-help收集,我忘了谁/何时)
编辑:在一些最初的争议之后,看起来问题现在重新开放参赛作品.
%in%R中是否存在短暂否定!%in%或%!in%?
当然,我可以否定c("A", "B") %in% c("B", "C")通过!(c("A", "B") %in% c("B", "C"))(见这个问题),但我会prefere一个更直接的方法,节省了一个括号(都想必大多数人宁愿c("A", "B") != c("B", "C")过!(c("A", "B") == c("B", "C"))).
可能重复:
相对于%的百分比
与此相反的是什么
matrix[matrix%in%1,]?
!%in% does not work.
Run Code Online (Sandbox Code Playgroud)
我想选择不包含特定数字的项目.
我正在寻找一个 dplyr 等价物
SELECT user_id, item
FROM users
WHERE user_id NOT IN (1, 5, 6, 7, 11, 17, 18); -- admin accounts
Run Code Online (Sandbox Code Playgroud)
我可以使用
users %>% filter(user_id != 1)但无法想象一直使用多个&&。
有没有办法排除多行?
我有一个清单:
L <- c("a","b","c","d","e")
Run Code Online (Sandbox Code Playgroud)
我也有此列表的子集:
L1 <- c("b","d","e")
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个不包含子集列表的新列表。
我试过了:
L[L!%in%L1]
L[L%in%!L1]
L[L%in%-L1]
Run Code Online (Sandbox Code Playgroud)
但这不起作用。谢谢您的帮助。