Объединить две строки во фрейме данных

#r #dataframe

#r #фрейм данных

Вопрос:

У меня есть фрейм данных, который выглядит примерно так:

  V2 V3 V4
Case 1 1 2
Reg "A" "B" "D"
H 11 16 12
M 14 15 13
S 13 56 34
  

Я хотел бы объединить две строки с именами «Case» и «Reg» в одну строку с именем «ID». Я бы хотел, чтобы это выглядело так:

   V2 V3 V4
ID "1A" "1B" "2D"
H 11 16 12
M 14 15 13
S 13 56 34
  

Я был бы очень признателен, если у кого-нибудь есть простое решение для этого!

Ответ №1:

Вот идея с большим количеством вставок, т.е.

 unname(sapply(df, function(i) 
                 paste(paste(i[1:2], collapse = ''), '=', paste(i[3:5], collapse = ':'))))

#[1] "1A = 11:14:13" "1B = 16:15:56" "2D = 12:13:34"
  

Редактировать

Основываясь на вашем обновленном вопросе, мы можем сделать следующее,

 df1 <- rbind(paste0(df['Case',], df['Reg',]), df[3:nrow(df),])
rownames(df1)[1] <- 'ID'
df1
#   V2 V3 V4
#ID 1A 1B 2D
#H  11 16 12
#M  14 15 13
#S  13 56 34
  

Комментарии:

1. Большое вам спасибо! Это может быть основной вопрос, но как я могу перейти от «1A = 11:14:13» к «1A» = 11:14:13?

2. Вы имеете в виду, что хотите назначить их своей глобальной среде?