возвращаемая ошибка unite 'нет применимого метода для' unite_ ', примененного к объекту класса "c (' double ',' цифра c ')" - PullRequest
1 голос
/ 23 января 2020

У меня есть набор данных, который выглядит следующим образом:

p = c(3, 4, 5, 6, 7)
q = c("fr", "", "fr", "fe", "fre")
b = c(1, "", 1, "", 1)
a = c("r", "f", "b", "m", "p")

df=data.frame(p, q, b, a)

Я хочу объединить q, b и a и поместить результат в новый столбец, поэтому я использую unite:

new_df <- df %>% 
  mutate(Merged = unite(q,b,a), sep = "_")

Я получаю эту ошибку:

Ошибка в UseMethod ("unite_"):
нет применимого метода для 'unite_', примененного к объекту класса "c (' double ',' Numberri c ') "

Кроме того, независимо от вопроса, приведенного выше, как я могу указать диапазон столбцов в коде, чтобы я не' нужно ввести их все вручную (я хочу объединить десятки столбцов). Могу ли я написать q:a для столбцов q в a? Я пробовал этот синтаксис с помощью функции вставки, но он не работал.

1 Ответ

1 голос
/ 23 января 2020

Мы используем unite за пределами mutate

library(dplyr)
library(tidyr)

df %>% 
     unite(Merged, q, b, a, sep= "_")

Использование unite составляет

unite(data, col, ..., sep = "_", remove = TRUE, na.rm = FALSE)

где

col - имя нового столбца в виде строки или символа.


Или другой параметр transmute с str_c

library(stringr)

df %>%
    transmute(p, Merged = str_c(q, b, a, sep="_"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...