- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小问题,在概念上似乎很简单,但我找不到解决方法...
假设我有一个 data.frame df2,其中有一列列出汽车品牌,另一列包含每个品牌的所有型号,用“,”分隔。我已经获得了 df2 聚合另一个名为 df1 的 data.frame,主键是模型。
我应该如何继续执行相反的任务(即:从 df2 到 df1)?我的猜测类似于 melt(df2, id=unlist(strsplit('models',',')))
...非常感谢!
这是一个 MWE:
df1 <- data.frame(model=c('a1','a2','a3','b1','b2','c1','d1','d2','d3','d4'),
brand=c('a','a','a','b','b','c','d','d','d','d'))
df1
collap <- function(x){
out <- paste(sort(unique(x)), collapse=",")
return (out)
}
df2 <- aggregate(df1$model, by=list(df1$brand), collap)
names(df2) <- c('brand','models')
df2 #how can I do the opposite task (ie: from df2 to df1)?
最佳答案
这里有两种选择:
使用data.table
和unlist
如下:
library(data.table)
DT <- data.table(df2)
DT[, list(model = unlist(strsplit(as.character(models), ","))),
by = brand]
# brand model
# 1: a a1
# 2: a a2
# 3: a a3
# 4: b b1
# 5: b b2
# 6: c c1
# 7: d d1
# 8: d d2
# 9: d d3
# 10: d d4
使用我的“splitstackshape”包中的 concat.split.multiple
。这种方法的一个好处是能够使用一个简单的命令拆分多个列。
library(splitstackshape)
out <- concat.split.multiple(df2, "models", ",", "long")
out[complete.cases(out), ]
# brand time models
# 1 a 1 a1
# 2 b 1 b1
# 3 c 1 c1
# 4 d 1 d1
# 5 a 2 a2
# 6 b 2 b2
# 8 d 2 d2
# 9 a 3 a3
# 12 d 3 d3
# 16 d 4 d4
关于r - melt + strsplit,或与aggregate相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711211/
我尝试应用以下规则: 按 ; 截断字符串以达到最大长度 n。 例如, n pattern [1] "(? 字符。 所以,你可以使用 num .{1,3}(?:;|$)|[^;]{4} string
这个问题在这里已经有了答案: R strsplit with multiple unordered split arguments? (4 个回答) 2年前关闭。 我该如何拆分这个 Chr3:153
我想用 R 来拆分一些聊天消息,这里是一个例子: example <- "[29.01.18, 23:33] Alice: Ist das hier ein Chatverlauf?\n[29.01.
R的strsplit如果为“空”(示例 2),则删除最后一个元素,但不会在第一个元素(示例 3)或在要拆分的向量中间(示例 4)时删除。 > unlist(strsplit(x = "1,4", sp
我正在尝试以大型 CSV 文件格式绘制基因测试的结果图。 CSV 中的每个 x,y 位置都是一个数字分数,其中大部分为零。我只对非零数据感兴趣。此外,每个 X 和 Y 标题的名称都有我想用来进一步对数
这个问题在这里已经有了答案: Split comma-separated strings in a column into separate rows (6 个答案) 关闭 6 年前。 我有一个 d
有没有办法像这样拆分字符串? A1BG\tAAAGGGCGTTCACCGG\t2 A1BG\tAAGATAGCATCCCACT\t1 我想用“\”分割,以便计算文件中有多少个基因,在这种情况下,A1B
这个问题在这里已经有了答案: Regex; eliminate all punctuation except (2 个回答) 7年前关闭。 我问过相关问题 HERE和 HERE .我试图概括这些答案,
我又一次遇到了strsplit .我正在将一些字符串转换为数据帧,但是有一个正斜杠 /我的字符串中的一些空白一直困扰着我。我可以解决它,但我很想知道我是否可以在 strsplit 中使用一些花哨的东西
我有一些由“”分隔的数据字符串需要拆分成列。有没有一种简单的方法可以按每个第 n 个分隔符拆分数据。例如,x 中的第一个值告诉您 y 中的前 4 个值对应于第一次试验。 x 中的第二个值告诉您 y 中
我想保留 FIRST 后的部分。请参阅示例代码。 colnames(df) "EGAR00001341740_P32_1" "EGAR00001341741_PN32" 我的尝试,但不给P32_
这个问题在这里已经有了答案: Splitting a string on the first space (6 个回答) 2年前关闭。 我想编写一个 strsplit 命令来获取第一个“)”并拆分字符
我已经尝试解决这个小问题近两个小时了,但没有成功。我只想用分隔符分隔字符串:一个空格后跟任何字符。在第二个元素中,我想保留分隔符,而在第一个元素中,它不应出现。示例: x strsplit(x,"
给定一个字符串 test_1 strsplit(test_1, "\\, |\\,| ") # three possibilities OR'ed [[1]] [1] "abc" "def" "gh
我有一个带有因子列的大型数据框,我需要通过用分隔符分割因子名称来将其分为三个因子列。这是我当前的方法,对于大数据帧(有时数百万行)来说非常慢: data " 1.16 43.28
在本例中,我有一个纬度/经度坐标元胞数组,我从文件中将其作为字符串读取,格式为: x = {'27° 57'' 21.4" N', '7° 34'' 11.1" W'} 其中°实际上是度数符号(U+0
这是我之前提出的这个问题的后续:R for loop: create a new column with the count of a sub str from a different column
我正在尝试在“.”上拆分字符串。并使用“.”前后的两个字符串创建附加列。 tes sapply(strsplit(as.character(h$tes), "\\."), "[[", 2) [1] "
我在 strsplit() 中发现了一个非常奇怪的行为。它类似于 this question ,但是我很想知道为什么它首先返回一个空元素。有人知道吗? unlist(strsplit("88F5T7F
假设我需要将 caabacb 拆分为单独的字母,除非字母后跟 b,从而导致 "c""a""ab ""a""cb"。我尝试使用以下行,它在正则表达式测试器上看起来不错,但在 R 中不起作用。我做错了什么
我是一名优秀的程序员,十分优秀!