簡體   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