将字符串分成多列

问题描述 投票:0回答:1

我想将字符串中的每个字母或符号分开,以组成一个尺寸等于字母数量的新data.frame。我尝试使用separate包中的函数tidyr,但结果不理想。

df <- data.frame(x = c('house', 'mouse'), y = c('count', 'apple'), stringsAsFactors = F)

意外结果

df[1, ] %>% separate(x, c('A1', 'A2', 'A3', 'A4', 'A5'), sep ='')
    A1   A2   A3   A4   A5     y
1 <NA> <NA> <NA> <NA> <NA> count

预期输出

A1  A2  A3  A4  A5
 h   o   u   s   e
 m   o   u   s   e

欢迎使用stringr的解决方案。

r dataframe separator
1个回答
5
投票

我们可以在sep中使用正则表达式环顾四周以匹配每个字符之间的边界


2
投票

base中的解决方案是:


2
投票

我们可以将cSplit中的splitstackshapestripWhite = FALSEsep = ""一起使用,以拆分列中的每个字母。

© www.soinside.com 2019 - 2024. All rights reserved.