Предотвращение переименования переменных при создании нового фрейма данных из другого фрейма данных - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть очень простой набор данных, подобный этому,

a <- c(29, 10, 29)
b <- c(32, 23, 43)
c <- c(33,22,1)
df1 <- data.frame(a, b, c)

Я хочу создать новый фрейм данных из вектора a и c из df1.Я запускаю следующую команду:

df2 <- data.frame(df1$a, df1$c)

Это создает фрейм данных с именами переменных df.a и df.c.Есть ли способ, которым я могу иметь имя переменной точно так же, как у меня в df1?

Ответы [ 4 ]

0 голосов
/ 12 февраля 2019

Если ваше реальное приложение более сложное, чем простое подмножество (что кажется очевидным хорошим решением), вы можете использовать setNames (здесь это не имеет особого смысла, но может помочь, если вы пытаетесь автоматическипереименовать фрейм данных при построении ...):

df2 <- setNames(df1[, c('a', 'b')], names(df1[, c('a', 'b')]) )
0 голосов
/ 12 февраля 2019
df2 <- data.frame(a=df1$a, c=df1$c)
   a  b
1 29 33
2 10 22
3 29  1
0 голосов
/ 12 февраля 2019
df1[,c("a","c")]

Если выбран только столбец: df1[,"a",drop=FALSE].

Всегда включайте drop=FALSE для обработки общего случая:

selectedColumns <- c("a","c")
df1[, selectedColumns, drop=FALSE]
0 голосов
/ 12 февраля 2019

Я полагаю, что ваши переменные a, b, c больше не доступны напрямую

colnames(df2) <- c("a", "c")

должно сработать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...