Объединить несколько ячеек в строке в одну ячейку с помощью sep = ">" - PullRequest
0 голосов
/ 10 октября 2019

Я хотел бы объединить последние три столбца в новый с sep = ">" между всеми именами. У меня есть df:

    1   2      3      4     5  
    70  54895  Den    Bas   Tom
    49  45975  John   River Max
    34  30295  Daen   Bob   Jimmy
    19  11995  Morgan Dylan Martin

Into

    1   2      3  
    70  54895  Den > Bas > Tom

Так как некоторые строки имеют несколько столбцов (не более 198), я не могу просто напечатать имена столбцов «3»,«4», «5», чтобы объединить их.

Я попытался решить проблему с помощью:

df$Names <- paste(df[, 3], sep = ">")

1 Ответ

2 голосов
/ 10 октября 2019

Мы можем попробовать использовать apply для одного базового параметра R:

df$Names <- apply(df[, 3:5], 1, function(x) {
                paste(ifelse(is.na(x), "-", x), collapse = " > ")
            })

Выше будет отображаться - для тех имен, которые могут быть NA.

Есливместо этого вы вообще не хотите видеть NA значений, затем используйте:

df$Names <- apply(df[, 3:5], 1, function(x) {
                paste(x[!is.na(x)], collapse = " > ")
            })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...