我正在使用 R 编程语言。
我在数据框中有一列看起来像这样(该列是一个 CHARACTER 变量):
head(b$`New Col`)
[1] "1073680,, 781230,, 292455," "128485,, 62890,, 65595," "372475,, 184745,, 187730,"
- 第一行包含一个元素:1073680,, 781230,, 292455,
- 第二行包含一个元素:128485,, 62890,, 65595,
- 第三行包含一个元素:372475,, 184745,, 187730,
我想将此列拆分为 3 列:
id col1 col2 col3
1 1 1073680 781230 292455
2 2 128485 62890 65595
3 3 372475 184745 187730
我知道如何在 Excel 中执行此操作(例如删除最后一个逗号,然后使用双逗号“固定宽度分隔”)。
但是有人可以告诉我如何在 R 中执行此操作吗?
谢谢!
最佳答案
除了 Maël 的回答:如果您严格按照固定宽度分隔,请使用 separate
和位置索引而不是分隔符字符串。
您的示例数据:
b <- structure(list(New.Col = c("1073680,, 781230,, 292455,", " 128485,, 62890,, 65595,",
" 372475,, 184745,, 187730,")), class = "data.frame", row.names = c(NA,
-3L))
以固定宽度分隔:
library(tidyr)
b <- b %>%
separate(col = `New.Col`,
into = c('col1', 'drop1', 'col2', 'drop2', 'col3'),
sep = c(7, 10, 17, 21, 27)
)
删除垃圾列(包含分隔符):
b %>% select(-starts_with('drop'))
关于R:相当于 "Fixed Width Delimitation"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74115528/