r - 具有分隔变量的两列之间的差异;在 R 中
问题描述
我是 R 的初学者,在尝试做一些练习时,我陷入了其中一个问题。我的data.frame如下:
LanguageWorkedNow LanguageNextYear
Java; PHP Java; C++; SQL
C;C++;JavaScript; JavaScript; C; SQL
而且我需要知道其中的变量LanguageNextYear
和不在的变量LanguageWorkedNow
,以设置一个包含不同变量的列表。
抱歉,如果问题重复,我在这里很新,并试图找到它,但没有成功。
解决方案
碱基R
想法:mapply
setdiff
在strsplit
ted NextYear 和 WorkedNow 上,然后使用collapse=";"
:
df$New <- with(df, {
a <- mapply(setdiff, strsplit(NextYear, ";"), strsplit(WorkedNow, ";"), SIMPLIFY = FALSE)
sapply(a, paste, collapse=";")
})
# SIMPLIFY = FALSE is needed in a general case, it doesn't
# affect the output in the example case
# Or if you use Map instead of mapply, that is the default, so
# it could also be...
df$New <- with(df,
sapply(Map(setdiff, strsplit(NextYear, ";"), strsplit(WorkedNow, ";")),
paste, collapse=";"))
数据
df <- read.table(text = "WorkedNow NextYear
Java;PHP Java;C++;SQL
C;C++;JavaScript JavaScript;C;SQL
", header=TRUE, stringsAsFactors=FALSE)
推荐阅读
- javascript - 使用 Robot Framework 在页面上滚动到定位器
- python - 分组值和求和和新数据框 - 使用 Pandas
- linux - 网络接口检测到 Tx 单元在内存泄漏后挂起
- java - java.sql.SQLException:尝试检索视图条目时列名无效
- javascript - Three.js - 使用平面几何占用所有可用空间(模拟 background-size:cover 属性)
- sql - 多连接成本更低的方式
- swiftui - SwiftUI:在 SwiftUI 中使用 Spacer 垂直对齐动态大小的 Rectangle
- sql - 使用数据类型 varchar 对数字后跟一个字母进行排序
- python - Python,如何跳过循环中的最后一个逗号?
- mongodb - 如何为多个集合创建 mongodb 聚合查询