我正在尝试在 R 中制作一个如下所示的数据框:
group numbers
1 1 [1,2,3,4,5]
2 2 [8,9,10,11]
我的做法如下:
group = c(1:2)
numbers = I(list((1:5),(8:11)))
df = data.frame(group,numbers)
class(df$numbers)
但是,当我得到
df$numbers
类时,我得到“AsIs”。这会导致以后出现问题,因为我在 SparkR 中使用它,而 Spark 无法处理“AsIs”类型。对于我的用例,我需要将类设置为“列表”,但是当我这样做时,它仍然不会更改类型。将组的类保持为“整数”会很有帮助,但我认为将其转换为整数仍然有效,如果它还不是整数的话。是否有另一种方法可以避免 AsIs 的此问题并使数据框如图所示?
as.list()
数字:
unclass
或者不使用抑制剂功能
df$numbers <- unclass(df$numbers)
df
rank numbers
1 1 1, 2, 3, 4, 5
2 2 8, 9, 10, 11
str(df)
'data.frame': 2 obs. of 2 variables:
$ rank : int 1 2
$ numbers:List of 2
..$ : int 1 2 3 4 5
..$ : int 8 9 10 11
:
I
df <- data.frame(group = 1:2)
df$numbers <- list((1:5),(8:11))
df
group numbers
1 1 1, 2, 3, 4, 5
2 2 8, 9, 10, 11
。
最小可重现示例AsIs