#r
Вопрос:
Я пытаюсь скопировать столбец фрейма данных в тот же или новый фрейм данных. Мой фрейм данных df
содержит только один столбец:
col
1
2
3
4
5
Я надеюсь получить что-то подобное (другой/тот же фрейм данных, а не матрицу):
col1 col2 col3 col4 col5
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Я попытался создать новый фрейм данных с помощью new_df <- rep(df[,c(1)],5)
, и я не понимаю, почему это не сработало.
Ответ №1:
Просто назначьте столбец
df[paste0('col', 2:5)] <- df$col
-уптут
> df
col col2 col3 col4 col5
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
Или , если мы используем rep
, ввод может быть list
или data.frame
вместо вектора, т. е. df[,1]
приводит столбец data.frame к a vector
, как по умолчанию drop = TRUE
в data.frame
. Вместо этого (если есть только столбец rep(df, 5)
) или если более одного подмножества столбцов как df[1]
(- возвращает data.frame с одним столбцом) в качестве входных rep
данных . Результатом будет набор list
векторов, которые мы преобразуем в data.frame путем обертывания с data.frame
data.frame(rep(df[1],5))
Или может также использовать replicate
as.data.frame(replicate(5, df$col))
данные
df <- structure(list(col = 1:5), class = "data.frame", row.names = c(NA,
-5L))
Комментарии:
1. Можно ли было бы показать код
rep()
сlist
илиdata.frame
ввода?