相关疑难解决方法(0)

将列中以逗号分隔的字符串拆分为单独的行

我有一个数据框,如下所示:

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" …

string split r r-faq

93
推荐指数
4
解决办法
3万
查看次数

将多个列拆分为多行

我正在处理一组非常原始的数据,需要对其进行整形才能使用它.我试图根据分隔符拆分选定的列'|'

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)

到目前为止,我已经尝试了各种不同的字符串拆分功能,但没有太多运气:(

有人可以帮忙吗?

split r strsplit splitstackshape

3
推荐指数
1
解决办法
1172
查看次数

将 R 数据框中的行值拆分为多行

我有一个 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)

我尝试了以下代码,但它不起作用并生成了具有重复元素的列- …

split r dataframe

3
推荐指数
1
解决办法
2862
查看次数

如何根据单元格中的值在R数据框中创建新行?

我有以下数据框:

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)

任何帮助,将不胜感激。

r

2
推荐指数
1
解决办法
66
查看次数

分隔字符列并在r中转换为整齐的格式

我有一个数据集,其中的#标签列包含可变数量的#标签,并用分隔;。例如:

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似乎不适用于这里。非常感谢。

r dplyr tidyr

0
推荐指数
1
解决办法
38
查看次数

标签 统计

r ×5

split ×3

dataframe ×1

dplyr ×1

r-faq ×1

splitstackshape ×1

string ×1

strsplit ×1

tidyr ×1