【问题标题】:R: Only keep the 3 (x) first characters in a all rows in a column?R:只保留列中所有行的前 3 (x) 个字符?
【发布时间】:2014-02-10 11:02:30
【问题描述】:

我已将几千个 xls 文件导入到 data.frame 中,并添加了带有文件名的列。

这样我就有了数据

data1  data2  data3  filname
A      A2     A3     301fg.xls
B      B2     B3     302gfg.xls
C      C2     C3     303gfsddf.xls
.,.,.,.

我想将文件名列中的名称重命名为仅包含前 3 个字符/数字,从而给出:

data1  data2  data3  filname
A      A2     A3     301
B      B2     B3     302
C      C2     C3     303
.,.,.,.

【问题讨论】:

    标签: r


    【解决方案1】:
    df$filname <- sub("^(\\d{3}).*$", "\\1", df$filname)
    

    df$filname <- substr(df$filname, 0, 3)
    

    【讨论】:

    • 感谢您拯救我的一天!
    【解决方案2】:

    @lukeA 对此发布了最合乎逻辑的答案,但您也可以使用read.fwf

    > read.fwf(textConnection(mydf$filname), 3)
       V1
    1 301
    2 302
    3 303
    

    根据您数据的str,如果mydf$filenamefactor 变量,它可能需要为read.fwf(textConnection(as.character(mydf$filname)), 3)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-18
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多