Назначьте столбец data.frame с именем строки в R
23689 просмотра
3 ответа
Я пытаюсь назначить данные для существующего кадра данных с именем, созданным в цикле. Основной пример может быть
A = data.frame(a = c(1,2,3), b=c(3,6,2))
for (i in 1:2){
name = paste("Name",i, sep="")
assign(name, c(6,3,2))
}
Теперь мне просто нужно выяснить, как добавить name1 и name2 к data.frame A, сохраняя при этом их назначенное имя. Я уверен, что есть простой ответ, я просто не вижу его прямо сейчас.
в конце я хотел бы закончить с
A
#a b name1 name2
#1 3 6 6
#2 6 3 3
#3 2 2 2
Но мне нужно сделать это в автоматическом режиме.
Например, если цикл for может быть адаптирован так
for (i in 1:2){
name = paste("Name",i, sep="")
assign(name, c(6,3,2)
A= cbind(A, get(paste(name,i,sep=""))) # works but doesn't maintain the column name as name1 or name2 etc
}
это, однако, не поддерживает имена столбцов
Автор: mmann1123 Источник Размещён: 12.11.2019 09:52Ответы (3)
21 плюса
Другие ответы хороши, но если вы настроены на использование цикла, как у вас, то это будет работать:
A <- data.frame(a = c(1,2,3), b = c(3,6,2))
for (i in 1:2){
A[paste("Name", i, sep="")] <- c(6,3,2)
}
который дает
> A
a b Name1 Name2
1 1 3 6 6
2 2 6 3 3
3 3 2 2 2
В качестве альтернативы paste("Name", i, sep="")
можно заменитьpaste0("Name", i)
3 плюса
Может быть, вы хотите это:
R> A <- data.frame(a=c(1,2,3), b=c(3,6,2))
R> colnames(A) <- paste("Names", 1:ncol(A), sep="")
R> A
Names1 Names2
1 1 3
2 2 6
3 3 2
R>
но, как сказал Тайлер в комментарии, не совсем понятно, о чем вы спрашиваете.
Автор: Dirk Eddelbuettel Размещён: 16.05.2012 06:123 плюса
Все еще не совсем уверен, что вы пытаетесь достичь:
A = data.frame(a = c(1,2,3), b=c(3,6,2))
B <- data.frame(A, c(6, 3, 2), c(6, 3, 2))
names(B)[3:4] <- paste0("name", 1:2)
B
Который дает:
a b name1 name2
1 1 3 6 6
2 2 6 3 3
3 3 2 2 2
Автор: Tyler Rinker
Размещён: 16.05.2012 06:21
Вопросы из категории :
- string В чем разница между строкой и строкой в ??C #?
- string Почему в Ruby нет реального StringBuffer или StringIO?
- string Преобразовать строку в перечисление в C #
- string Преобразование списка <Integer> в список <String>
- string Самый эффективный способ объединения строк?
- string Экранирование строк HTML с помощью jQuery
- r Как получить доступ к последнему значению в векторе?
- r Пакеты оптимизации для R
- r Есть ли у R такие операторские операции, как Perl qw ()?
- r Библиотека / инструмент для рисования тройных / треугольных графиков
- r Участки без заголовков / надписей в R
- r Расчет скользящей средней
- assign Как назначить из функции, которая возвращает более одного значения?
- assign Назначить несколько объектов .GlobalEnv из функции
- assign Назначьте столбец data.frame с именем строки в R
- assign В C, почему я не могу присвоить строку массиву char после ее объявления?
- assign Python / Tkinter: Как установить содержимое текстового виджета в значение переменной?
- assign Как я могу назначить содержимое переменной на имя переменной в Perl?