繁体   English   中英

R:只在一列的所有行中保留前三(x)个字符吗?

[英]R: Only keep the 3 (x) first characters in a all rows in a column?

我已经将数千个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
.,.,.,.
df$filname <- sub("^(\\d{3}).*$", "\\1", df$filname)

要么

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

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

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

根据数据的str ,可能需要读取它read.fwf(textConnection(as.character(mydf$filname)), 3)如果mydf$filename是一个factor变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM