У меня очень большой набор данных, который включает несколько столбцов с общими частями их имен (например, ctq_1, ctq_2, ctq_3, а также panas_1, panas_2, panas_3). Я хотел бы установить некоторые из этих столбцов (например, только те, которые содержат 'panas' в имени столбца) вместе с некоторыми другими столбцами из того же фрейма данных, которые имеют уникальные имена (например, id, group).
Я пытался использовать функцию grep в квадратных скобках, которая хорошо работала: panas <- bigdata [, grep ('panas', colnames (bigdata))]], но теперь мне нужно разобраться, как включитьдругие два столбца, которые мне нужны, это id и группа. Я пробовал: panas <- bigdata [, c ('id', 'group', grep ('panas', colnames (bigdata)))], но я получаю эту ошибку: Ошибка: не удается найти столбцы <code>114, 115
, 116
, 117
, 118
,… (и еще 15) в .data
. Позвоните rlang::last_error()
, чтобы увидеть обратный след.
Как мне добиться того, чего я хочу, с помощью максимально простого кода? Я новичок в R, поэтому избегать необычных функций было бы идеально!
Вот воспроизводимый пример.
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> newframe <- iris[ , grep('Petal', colnames(iris))] # This works
> newframe <- iris[ , c('Species', grep('Petal', colnames(iris)))] # This doesn't work
На этот раз ошибка:
Ошибка в [.data.frame
(радужная оболочка,, c («Виды», grep («Лепесток», названия столбцов (радужная оболочка)))): выбраны неопределенные столбцы