我有一个数据框,如下所示:
data.frame(director = c("Aaron Blaise,Bob Walker", "Akira Kurosawa",
"Alan J. Pakula", "Alan Parker", "Alejandro Amenabar", "Alejandro Gonzalez Inarritu",
"Alejandro Gonzalez Inarritu,Benicio Del Toro", "Alejandro González Iñárritu",
"Alex Proyas", "Alexander Hall", "Alfonso Cuaron", "Alfred Hitchcock",
"Anatole Litvak", "Andrew Adamson,Marilyn Fox", "Andrew Dominik",
"Andrew Stanton", "Andrew Stanton,Lee Unkrich", "Angelina Jolie,John Stevenson",
"Anne Fontaine", "Anthony Harvey"), AB = c('A', 'B', 'A', 'A', 'B', 'B', 'B', 'A', 'B', 'A', 'B', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'A'))
Run Code Online (Sandbox Code Playgroud)
如您所见,director列中的某些条目是由逗号分隔的多个名称.我想将这些条目拆分为单独的行,同时保持另一列的值.例如,上面数据框中的第一行应该分成两行,director列中各有一个名称,列中有"A" …
我正在处理一组非常原始的数据,需要对其进行整形才能使用它.我试图根据分隔符拆分选定的列'|'
d <- data.frame(id = c(022,565,893,415),
name = c('c|e','m|q','w','w|s|e'),
score = c('e','k|e','e|k|e', 'e|o'))
Run Code Online (Sandbox Code Playgroud)
是否可以将数据帧拆分为一个,以便最终看起来像这样.
df <- data.frame(id = c(22,22,565,565,565,565,893,893,893,415,415,415,415,415,415),
name = c('c','e','m','m','q','q','w','w','w','w','w','s','s','e','e'),
score = c('e','e','k','e','k','e','e','k','e','e','o','e','o','e','o'))
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了各种不同的字符串拆分功能,但没有太多运气:(
有人可以帮忙吗?
我有一个 R 数据框如下-
df <- data.frame(
FDR = c (0.009, 0.007, 0.007),
Probe_ID = c("1555272_at", "1557203_at", "1557384_at"),
Gene.Symbol = c("RSPH10B2///RSPH10B","PABPC1L2B///PABPC1L2A","LOC100506639///ZNF131"),
Gene.ID = c("728194///222967","645974///340529","100506639///7690"))
df
FDR Probe_ID Gene.Symbol Gene.ID
1 0.009 1555272_at RSPH10B2///RSPH10B 728194///222967
2 0.007 1557203_at PABPC1L2B///PABPC1L2A 645974///340529
3 0.007 1557384_at LOC100506639///ZNF131 100506639///7690
Run Code Online (Sandbox Code Playgroud)
我想根据 列 的行值和df$Gene.symbol模式分割数据框///。结果数据框应如下所示 -
FDR Probe_ID Gene.symbol Gene.ID
0.009 15111_at RSPH10B2 728194
0.009 15111_at RSPH10B 222967
0.007 15222_at PABPC1L2B 645974
0.007 15222_at PABPC1L2A 340529
0.007 15333_at LOC100506639 100506639
0.007 15333_at ZNF131 7690
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但它不起作用并生成了具有重复元素的列- …
我有以下数据框:
id name shoes
1 Pete "nike; adidas; puma"
2 Anna nike
Run Code Online (Sandbox Code Playgroud)
基于这个数据框我想创建以下 data.frame
id name shoes
1 Pete nike
1 Pete adidas
1 Pete puma
2 Ana nike
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。
我有一个数据集,其中的#标签列包含可变数量的#标签,并用分隔;。例如:
id hashtags
1 #apple;#peach
2 #apple
3 #pear;#orange;#banana
Run Code Online (Sandbox Code Playgroud)
我需要做的是将列分开并将其转换为整洁的数据。因此,每一行都包含ID和一个单独的#标签。
id hashtag
1 #apple
1 #peach
2 #apple
3 #pear
3 #orange
3 #banana
Run Code Online (Sandbox Code Playgroud)
我可以使用下面的循环来做到这一点。
library(tidyverse)
df = data.frame(id=1:3, hashtags=c("#apple;#peach", "#apple", "#pear;#orange;#banana"))
dat = data.frame()
for (i in 1:nrow(df)) {
dt = data.frame(id = df$id[i],
hashtag = str_split(df$hashtags[i], ';')[[1]])
dat = bind_rows(dat, dt)
}
Run Code Online (Sandbox Code Playgroud)
但是我认为上述方法不是一个好的解决方案。当我有一个非常大的数据集(我的实际数据)时,我发现它非常慢。
有没有人有更好,更快的方法来实现这一目标?请注意,每个ID的#标签数量变化很大。tidyr::separate似乎不适用于这里。非常感谢。