#r
#r
Вопрос:
У меня есть фрейм данных, который выглядит следующим образом:
name value position
tex21 0.2 r45
tex21 0.5 r45
ca14 0.9 r67
ca14 0.1 r67
Для каждого position
я хочу вставить соответствующую строку name
рядом с его строкой. Вот так:
name value position
tex21 0.2 tex21.r45
tex21 0.5 tex21.r45
ca14 0.9 ca14.r67
ca14 0.1 ca14.r67
Как я могу это сделать?
Ответ №1:
Попробуйте paste
перезаписать данные столбца с помощью этого кода position
:
df$position<-paste(df$name,df$position,sep=".")
Ввод
df<-data.frame(name=c('text21','text21','cal14','cal14'),
value=c(0.2,0.5,0.9,0.1),
position=c('r45','r45','r67','r67'))
Вывод
df$position<-paste(df$name,df$position,sep=".")
df
name value position
1 text21 0.2 text21.r45
2 text21 0.5 text21.r45
3 cal14 0.9 cal14.r67
4 cal14 0.1 cal14.r67
Ответ №2:
Попробуйте это:
library(dplyr)
df <- data.frame(name = c("tex21", "tex21", "ca14", "ca14"),
value = c(0.2, 0.5, 0.9, 0.1),
position = c("r45", "r45", "r67", "r67")
)
df2 <- df %>% mutate(position = paste(name,position,sep="."))
df2
name value position
1 tex21 0.2 tex21.r45
2 tex21 0.5 tex21.r45
3 ca14 0.9 ca14.r67
4 ca14 0.1 ca14.r67
Ответ №3:
Используйте этот код:
library(dplyr)
df <- df %>%
mutate(Position = paste(name, position, sep = "."))
> df
name value position Position
1 tex21 0.2 r45 tex21.r45
2 tex21 0.5 r45 tex21.r45
3 ca14 0.9 r67 ca14.r67
4 ca14 0.1 r67 ca14.r67