【发布时间】:2016-02-07 19:08:11
【问题描述】:
我正在为 data.frame df 的每一行计算一个表。
我想将这些表分配为我的数据库新列的值(以便每一行分配一个表)。
但是尝试将表放入 data.frame 只会导致使用表的第一个值。
df <- data.frame(values = c("row 1","row 2", "row 3"))
v_row_1 <- c("one", "one", "two", "three", "three")
t_row_1 <- table(v_row_1)
df[1, "tables"] <- t_row_1
Warning message:
In `[<-.data.frame`(`*tmp*`, 1, value = list(values = c(1, 2, 3), :
provided 2 variables to replace 1 variables
我认为一种解决方案是将我的表 t 转换为字符串对象,然后将该对象分配给我的数据框中的单元格。但是,如果我使用 paste(toString(t)) 来执行此操作,我会丢失表名(我仍然无法将这个东西放入 data.frame 单元格中)。
我想要的输出大致如下:
values tables
row 1 one 2 three 2 two 1
row 2 ...
row 3 ...
我不介意表格是否转换为线性字符串,只要它们是可读的。
【问题讨论】:
-
你也可以发布你想要的输出吗?
-
这个“有效”:
df[1,"tables"] <- list(list(t)) -
好的,我现在明白了。寻找解决方法。
-
@Frank,都在那里,只是没有打印出来。真的需要解决方法吗?您提供的数据结构将比单个字符串更好(除非您尝试另存为 CSV 或其他东西......)
-
@Frank,那么
toString(sprintf("%s (%d)", names(t), t))怎么样。