【问题标题】:merge in R to compare before and after在R中合并以比较前后
【发布时间】:2017-08-10 13:38:13
【问题描述】:

不知何故,我无法让后续工作。

我有一个包含两列的 data.frame,一列包含字符串,一列包含索引。我复制了data.frame。名称是“清洁”和“控制”。我在清洁时使用了一个简单的 gsub 函数,它使单元格具有特定的模式 NA 或更改它们的内容。现在我想知道发生了什么变化。我认为使用我的索引将它们合并到一个新的data.frame中可能很容易,清理为column1,control为column 2。 例如:

pat <- "AKGUN""
repl <- NA

cleaning$V1 <- gsub(pat, repl, cleaning$V1, perl=TRUE)
what.has.changed <- merge.data.frame (cleaning, control) 

问题是,我在新数据框中只得到了 2 个变量,这对我没有任何帮助。有人知道我做错了什么吗?理想情况下,我只会保留那些发生变化的行。 非常感谢, 斯蒂菲

> dput(head(cleaning)) 
structure(list(V1 = c(NA, "ALEXANDER K, 2005, GLOBAL GOVERNANCE FI, P27", 
"BROMS B., 1953, SUOMI FINLAND, VVIII, P4", "ABDULLAH DS, 2003, NEW STRAITS TIM 0917, P10", 
"AGNEW J, 2010, POINT IS CHANGE IT, P214", "ABUNASR D, 2009, ASS PRESS       0329"
), index2 = 1:6), .Names = c("V1", "index2"), row.names = c(NA, 
6L), class = "data.frame")

> dput(head(control))
structure(list(V1 = c("AKGUN MENSUR, 2010, TESEV IST MARCH", 
"ALEXANDER K, 2005, GLOBAL GOVERNANCE FI, P27", "BROMS B., 1953, SUOMI FINLAND, VVIII, P4", 
"ABDULLAH DS, 2003, NEW STRAITS TIM 0917, P10", "AGNEW J, 2010, POINT IS CHANGE IT, P214", 
"ABUNASR D, 2009, ASS PRESS       0329"), index2 = 1:6), .Names = c("V1", 
"index2"), row.names = c(NA, 6L), class = "data.frame")

【问题讨论】:

  • 你能分享dput(head(cleaning))dput(head(control))吗?
  • 抱歉,我还不清楚。 V2 是什么?为什么cleaning 中没有索引列?您是否还可以显示感兴趣的行(即V1"(" 开头的位置)?
  • 如果你只想看看原版cleaning$V1和修改版的区别,何不加一栏清洗呢?也就是说,不要修改cleaning$V1,而是这样做:cleaning$V3 &lt;- gsub(pat, repl, cleaning$V1, perl=TRUE)
  • 感谢 Oriol,这很有效 - 我添加了另一个 if.else 列,现在我看到了发生了什么变化。还有很多东西要学!

标签: r merge compare


【解决方案1】:

假设您正在处理 control 数据框,我认为以下内容可能有助于使用 dplyr

library(dplyr)

cleaning2 <- control %>% 
  mutate(V3 = gsub(pat, repl, V1, perl = TRUE))

现在如果我们只想比较变化,我们可以做一些修改:

cleaning2 <- control %>% 
  mutate(V1 = gsub(pat, repl, V1, perl = TRUE)) %>% 
  anti_join(control)

如果您希望看到所有相似的列,请使用intersect() 而不是anti_join()

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多