2017-07-08 133 views
0

我有一個包含多行的文件。例如R拆分字符串按列中的分隔符

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和I想要一個新的行添加到表中d,其值敬畏,ABCD,ASDF,和XYZ。寧願使用dplyr來完成此操作。

+0

歡迎SO。如果您希望我們爲您編寫代碼,這是錯誤的站點:)請參閱https://stackoverflow.com/help/on-topic,瞭解可能在此處提出的問題。 –

回答

6

您可以使用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 
+0

感謝您的回覆。然而,我正在尋找更普遍適用的東西。就像我希望這個工作,即使最後一部分不是ttp.net,例如讓它說yyp.net或ttp.abc.org等 –

+0

如果你只想保留第一個點之前的東西,那麼你可以做'gsub(「\\ .. *」,「」,A)'。我會編輯我的答案。 – Lamia

1

我們可以使用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 
+1

我得到錯誤LETTERS [1:4]:必須解析爲整數列位置,而不是字符。另外,它可能不僅僅是前4個字母。我需要一切,直到第一個。不管字母的數量如何。 –

+0

@AdamSmith我正在使用'dplyr_0.7.0'你可以在沒有選擇步驟的情況下測試它嗎? – akrun