- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于df.1
和df.2
这两个数据框,我想知道df.1
的行不在df.2
,即已经消失或改变的行。这是一个例子:
df.1 = cbind.data.frame(a = 1:4, b = 2:5, c = 99:102)
> df.1
a b c
1 1 2 99
2 2 3 100
3 3 4 101
4 4 5 102
df.2 = cbind.data.frame(a = c(1:3,7), b = c(3,3:4,9), c=c(99:100, 102, 105))
> df.2
a b c
1 1 3 99
2 2 3 100
3 3 4 102
4 7 9 105
所以这里我想要的输出是 df.1
的第 1,3 和 4 行:
> desired.output
a b c
1 1 2 99
3 3 4 101
4 4 5 102
如果 df.1
和 df.2
是向量,我可以使用 setdiff(df.1, df.2)
但我没有看不到将其应用于数据帧的简单/优雅的方式。
有没有比我想到的这些解决方法更优雅的方法:
df.1
和 df.2
,然后从所有列中取并集setdiff
并转换回数据框最佳答案
我认为,最优雅(语法糖和非常高效)是使用 data.table
包:
library(data.table)
setDT(df.1)[!df.2, on = names(df.1)]
# a b c
# 1: 1 2 99
# 2: 3 4 101
# 3: 4 5 102
请注意,这是不同的:
setDT(df.2)[!df.1, on = names(df.2)]
# a b c
# 1: 1 3 99
# 2: 3 4 102
# 3: 7 9 105
关于r - R中行的setdiff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760341/
如果 data.frames 包含列表列,是否有 R 函数可以获取一个 data.frame 中但不在另一个 data.frame 中的行?我知道 dplyr::setdiff 将在常规 data.f
这是setdiff正常行为: x x2 [1] "c" "d" "b" "c" "d" 这将是使用下面建议的表格方法的一种可能结果。使用一些“设置”函数,但这并不是真正的设置问题。似乎更“矢量化”:
如何在 R 中使用 setdiff() 来获取一个向量中但不在其他向量中的元素我的示例如下: dat1 <- c("osa", "bli", "usd", "mnl") dat2 <- c("mnu"
我想要做的或多或少是以下两个线程中讨论的问题的组合: Perform non-pairwise all-to-all comparisons between two unordered charact
我正在尝试使用以下代码获取迄今为止所有工作日的向量: days_of_month = seq(as.Date("2017-01-01"), as.Date("2017-01-31"), by="day
我有两个向量, x vsetdiff(x,y) [1] 3 4 关于r - 如何查找一个向量中不在另一个向量中的元素(不使用 setdiff),我们在Stack Overflow上找到一个类似的问题
我有一个字符向量,我想从中排除存在于第二个向量中的元素。我不知道如何在这种情况下进行否定,同时仍然考虑整个向量 vector[vector ! %in% vector2] 我显然可以做 vector[
在 R 中,是否有一些简单的方法来进行多集(即“袋子”)差异,类似于 setdiff() ,但保留输入向量中的顺序和多重性? 例如,假设 x <- c(1,2,2,3,1,5,4,4,5,3)和 y
我要setdiff连续组之间没有循环,如果可能的话,使用数据表方式或应用系列的功能。 数据框 df : id group 1 L1 1 2 L2 1 3 L1 2
我试图在 R 中找出一种方法来计算两个字符串向量的差异,但仅基于每个字符串中制表符分隔的前 3 列。例如,这是 list1 和 list2 列表 1: "1\t1113200\t111
以下是两个示例数据框: df1 df1 Time1v1 Time2v1 1 55.250 81.0000 2 59.360 12.0000 3 40.260 13.0000 4 786.0
示例数据 v1 v1[!v1 %in% v2] [1] "X2329323" "N23932" "X93201" "X9023111" "O92311" "9000F"
我正在使用 dplyr 将一些数据简单地拆分为训练和测试。 当我做一个简单的例子时,效果很好: a = c(1, 2, 3, 4, 5, 6, 7, 8) b = c("A", "B", "C", "
我正在尝试使用 RcppArmadillo 在 C++ 中编写 R 的 setdiff() 函数的一种模拟。我相当粗糙的方法: // [[Rcpp::export]] arma::uvec m
假设我有两个表: library(data.table) set.seed(1) tab1 tab1 let num val 1: a 1 -0.6264538 2:
我以前问过这个问题,我收到的答案有效:R: How to use setdiff on two string vectors by only comparing the first 3 tab del
给定两个包含数值的向量,例如 a=1.:0.1:2.; b=a+0.1; 我只想选择不同的值。为此,Matlab 提供了函数 setdiff .在上面的例子中很明显 setdiff(a,b) 应该返回
我有一个数据表dt1 : id1id2V1V21一个c(1, 2, 3, 4)c(1, 3, 6)2bc(2, 6, 9, 8)c(8, 5) 我想添加新列,这些列是 setdiff() 的结果, i
我正在尝试从数据集中删除包含某些植被类型的行。我想从未调查的数据中删除那些在调查数据中未找到植被类型的行。我找到了一种方法来做到这一点,但正在寻找一种单行方法。我目前正在这样做: > setdiff(
我是R的新手,正在努力使ggplot2可靠地工作。即使是在其他地方复制的简单代码段也无法在我的机器上运行。 这: library(ggplot2) ggplot(iris, aes(x = Sepal
我是一名优秀的程序员,十分优秀!