我有一个空的数据框,我想使用另一个数据框填充

时间:2019-03-22 21:05:06

标签: r dataframe multiple-columns is-empty

我有一个空的数据框,它是我的模板

temp <- data.frame(matrix(ncol=3)) colnames(temp) <- c("variable", "group", "bin")

另一个具有这些详细信息的数据框:

info <- data.frame(group_abc = c("1", "2", "2", "3", "3", "3"), bin_abc = c("0-700", "700-750", "750-800", "800-850", "850-900", "900-950"))

我希望变量名是“ group_abc”,并且group具有group_abc的值,而bin具有bin_abc的值。

当我尝试使用数据框中的值时,它给我一个错误:Error in $ <-。data.frame ( tmp {{1 }}

2 个答案:

答案 0 :(得分:0)

您可以通过将临时数据帧设置为在初始化时具有正确的行数和正确的列数来解决此问题。

info <- data.frame(group_abc = c("1", "2", "2", "3", "3", "3"), bin_abc = c("0-700", "700-750", "750-800", "800-850", "850-900", "900-950"))

temp           <- data.frame(matrix(ncol=3, nrow = nrow(info))) 
colnames(temp) <- c("variable", "group", "bin")

temp$group <- info$group_abc
temp$bin   <- info$bin_abc

答案 1 :(得分:0)

只需将现有数据框(的值)分配给新名称,即可更改列名称,这可以通过一个简单的步骤完成:

 info <- data.frame(group_abc = c("1", "2", "2", "3", "3", "3"), bin_abc = c("0-700", "700-750", "750-800", "800-850", "850-900", "900-950"))
 temp <- setNames( info, c("group", "bin"))

> temp
  group     bin
1     1   0-700
2     2 700-750
3     2 750-800
4     3 800-850
5     3 850-900
6     3 900-950

如果您只希望复制现有数据框的一部分,则可以使用setNames调用info参数上的“ [”来选择行或列,或同时选择行或列。