我有一个包含多行的文件。例如
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完成此操作。
答案 0 :(得分:8)
您可以使用mutate
和gsub
:
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
答案 1 :(得分:5)
我们可以将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
答案 2 :(得分:0)
首先,我创建数据框:
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)
)