【问题标题】:Splitting a dataframe column using first n characters of a string [duplicate]使用字符串的前 n 个字符拆分数据框列 [重复]
【发布时间】:2020-02-13 10:28:36
【问题描述】:

我还是 R 的新手,并且已经尝试解决这个问题几个小时了。我有一个包含两列的 .csv,我想在前 3 个字符之后将第一列分成两列,然后我可以删除第二列的前导空格。


我确定这必须在某个地方解决,但我找不到合适的术语来描述我的问题。


我不能使用“”分隔符,因为某些列值中有两个单词。 我尝试创建一个新列,然后找到一种方法来拆分字符串,但无济于事。

    primary_area       value
1  101 Kungsladugård  8164
2  102 Sanna          1580
3  103 Majorna        10032
4  104 Stigberget     15182

to this

   id   primary_area   value
1  101  Kungsladugård  8164
2  102  Sanna          1580
3  103  Majorna        10032
4  104  Stigberget     15182

【问题讨论】:

  • 你能不能用 dput() 做一个可重现的例子?
  • 我找到了使用单独的解决方案,不过谢谢!

标签: r dataframe split


【解决方案1】:

也许你可以试试下面的代码

df <- with(df, data.frame(id = gsub("(^\\w{3}).*","\\1",primary_area),
                          primary_area = gsub("^\\w{3}(.*)","\\1",primary_area),
                          value = value))

这样

> dfout
   id  primary_area value
1 101 Kungsladugård  8164
2 102         Sanna  1580
3 103       Majorna 10032
4 104    Stigberget 15182

【讨论】:

    【解决方案2】:

    你可以这样做:

    cbind(read.table(text = df$primary_area,
          strip.white = TRUE, col.names = c("id", "primary_area")), value = df$value)
       id  primary_area value
    1 101 Kungsladugård  8164
    2 102         Sanna  1580
    3 103       Majorna 10032
    4 104    Stigberget 15182
    

    【讨论】:

      猜你喜欢
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2015-06-16
      相关资源
      最近更新 更多