我有一個包含一列字串的資料框:
df1$V1 = c("5325_214424", "63325_685_2436", "573_636", "5754_23523_214235")
我想運行一個命令,該命令將檢查串列中具有兩個分隔符的值并洗掉第二個,同時保留其他分隔符。理想情況下,結果將如下所示:
df1$V1 = c("5325_214424", "63325_6852436", "573_636", "5754_23523214235")
我曾嘗試使用 strsplit 但它回傳單個字符字母:
df$V1 = strsplit(sub('(^[^ ] [^ ] ) (.*)$', '\1 \2', df$V1), '')
uj5u.com熱心網友回復:
sub是一個好的開始:
vec <- c("5325_214424", "63325_685_2436", "573_636", "5754_23523_214235")
sub("(_[^_]*)_", "\\1", vec)
# [1] "5325_214424" "63325_6852436" "573_636" "5754_23523214235"
這可以用來完成strsplit,雖然它有點復雜:
sapply(strsplit(vec, "_"), function(z) paste(z[1], paste(z[-1], collapse = ""), sep = "_"))
# [1] "5325_214424" "63325_6852436" "573_636" "5754_23523214235"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420683.html
標籤:
