связать динамическое имя столбца из строки в R - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу привязать столбец к фрейму данных с именем столбца, динамически назначаемым из строки

y_attribute = "Survived"
cbind(test_data, y_attribute = NA)

это приводит к тому, что новый столбец добавляется как y_attribute вместо обязательного атрибута Survived, который предоставляется в виде строки для переменной y_attribute. Что нужно сделать, чтобы получить столбец во фрейме данных с именем столбца, предоставленным из переменной?

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

На самом деле вам не нужно cbind, чтобы добавить новый столбец. Любой из них будет работать:

test_data[, y_attribute] = NA # data frame row,column syntax
test_data[y_attribute] = NA   # list syntax (would work for multiple columns at once)
test_data[[y_attribute]] = NA # list single item syntax (single column only)

Новые столбцы добавляются после существующих столбцов, как cbind.

0 голосов
/ 13 июня 2019

Не горжусь этим, но я обычно делаю что-то вроде этого:

dyn.col <- "XYZ"
cbind(test.data, UNIQUE_NAMEXXX=NA)
colnames(test.data)[colnames(test.data == 'UNIQUE_NAMEXXX')] <- dyn.col
0 голосов
/ 27 апреля 2018

Мы можем использовать tidyverse, чтобы сделать это

library(dplyr)
test_data %>%
     mutate(!! y_attribute := NA)
#   col1 Survived
#1    1       NA
#2    2       NA
#3    3       NA
#4    4       NA
#5    5       NA

данные

test_data <- data.frame(col1 = 1:5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...