This question already has answers here:
Separate a column into multiple columns using tidyr::separate with sep=“”

(2个答案)


去年关闭。





我的数据示例如下:

df1 <- read.table(text = "var Time
 12O    12
13O 11
22B 45
33Z 22
21L 2
11M 13", header = TRUE)


我想将“ Var”列中的值分开以获取以下数据:

df2 <- read.table(text = " Group1 Group2 Group3
 1  2   O
1   3   O
2   2   B
3   3   Z
2   1   L
1   1   M", header = TRUE)


我尝试了以下代码:

 df2 <- df1 %>% separate(var, into = c('Group1', 'Group2','Group3'), sep = 1)


我得到一个错误。我已进行搜索以找出错误,但失败了。

最佳答案

如果要保留原始列,则可以使用str_split_fixed包中的stringr并将结果cbind应用于现有的dataframe

cbind(df1, str_split_fixed(as.character(df1$var),"", n = 3))

  var Time 1 2 3
1 12O   12 1 2 O
2 13O   11 1 3 O
3 22B   45 2 2 B
4 33Z   22 3 3 Z
5 21L    2 2 1 L
6 11M   13 1 1 M

关于r - 分离混合值并在tidyverse中生成新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56612885/

10-09 03:43