Вставить символ из столбца в другой столбец той же строки

#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