我已将几千个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
.,.,.,.
答案 0 :(得分:24)
df$filname <- sub("^(\\d{3}).*$", "\\1", df$filname)
或
df$filname <- substr(df$filname, 0, 3)
答案 1 :(得分:0)
@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
的数据。