簡體   English   中英

R在列中按分隔符拆分字符串

[英]R Split String By Delimiter in a column

我有一個包含幾行的文件。 例如

A               B       C    
awer.ttp.net    Code    554
abcd.ttp.net    Code    747
asdf.ttp.net    Part    554
xyz.ttp.net     Part    747

我想使用 R 只拆分表的 A 列,我想將一個新列添加到表 D,其值為 awe、abcd、asdf 和 xyz。 希望使用 dplyr 完成此操作。

您可以使用mutategsub

library(dplyr)
df = df %>% mutate(D=gsub("\\..*","",A))

              A    B   C    D
   awer.ttp.net Code 554 awer
   abcd.ttp.net Code 747 abcd
   asdf.ttp.net Part 554 asdf
    xyz.ttp.net Part 747  xyz

我們可以為此使用tidyverse

library(dplyr)
library(tidyr)
df1 %>% 
   separate(A, into = 'D', extra = 'drop', remove = FALSE) %>% 
   select(LETTERS[1:4])
#             A    B   C    D
#1 awer.ttp.net Code 554 awer
#2 abcd.ttp.net Code 747 abcd
#3 asdf.ttp.net Part 554 asdf
#4  xyz.ttp.net Part 747  xyz

首先我創建數據框:

library(dplyr)

data <- 
   data.frame(
        A=c("awer.ttp.net","abcd.ttp.net", "asdf.ttp.net", "xyz.ttp.net"),
        B=c("Code", "Code", "Part", "Part"),
        C=c(554,747,554,747), 
        stringsAsFactors = F
   )

然后以這種方式改變新列:

data %>% 
    mutate(
        D = strsplit(A, "[.]") %>% 
            as.data.frame() %>% 
            t %>% 
            data.frame(stringsAsFactors = F) %>% 
            pull(1)
   )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM