R:相当于 "Fixed Width Delimitation"?

标签 r dataframe pivot-table data-manipulation

我正在使用 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/

相关文章:

r - 错误 : pandoc document conversion failed with error 2 with pkgdown/rmarkdown

python - 在循环中按索引对列表中的元素求和

excel - 如何在组中获得最小值?

python - pandas hub_table 返回空数据框

python - 将数据透视表转换为数据框

r - 从数据框创建混淆矩阵

R 如何使用 case_when() 确定列中的前一个值是否大于有序向量中的前一个值

r - lintr 测试通过 devtools::check() 并通过 devtools::test() 失败

python - 使用 max() 函数的数据框列值

python - 如何从 Pandas 数据框中的一行中选择具有最高值的 3 列?