我從data.frame 「轉換」 到data.tableR:GSUB和data.tables
str_split_fixed我現在有一個data.table:
library(data.table)
DT = data.table(ID = c("ab_cd.de","ab_ci.de","fb_cd.de","xy_cd.de"))
DT
ID
1: ab_cd.de
2: ab_ci.de
3: fb_cd.de
4: xy_cd.de
new_DT<- data.table(matrix(ncol = 2))
colnames(new_DT)<- c("test1", "test2")
我想先:在每個條目之後刪除「.de」,並在下一步中用下劃線分隔每個條目並將輸出保存在兩個新列中。最終的輸出應該是這樣的:
test1 test2
1 ab cd
2 ab ci
3 fb cd
4 xy cd
在data.frame我所做的:
df = data.frame(ID = c("ab_cd.de","ab_ci.de","fb_cd.de","xy_cd.de"))
df
ID
1: ab_cd.de
2: ab_ci.de
3: fb_cd.de
4: xy_cd.de
df[,1] <- gsub(".de", "", df[,1], fixed=FALSE)
df
ID
1: ab_cd
2: ab_ci
3: fb_cd
4: xy_cd
n <- 1
for (i in (1:length(df[,1]))){
new_df[n,] <-str_split_fixed(df[i,1], "_", 2)
n <- n+1
}
new_df
test1 test2
1 ab cd
2 ab ci
3 fb cd
4 xy cd
任何幫助表示讚賞!
我最終需要[]什麼? – Rivka
'[]'這裏是一個把結果打印出來的技巧。作爲':='修改列的位置但不返回任何內容。如果你不需要打印,那麼你不需要打印。 – Psidom
我需要重複每行5次。我試過......:= rep(tstrsplit(sub .....),16)'但是這是添加列,而不是行 – Rivka