我正在嘗試在 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”型別。對于我的用例,我需要類是“串列”,但是當我這樣做時as.list()它仍然不會改變型別。將組類保持為“整數”會很有幫助,但我認為將其轉換為整數仍然有效,如果它還不是整數的話。
有沒有另一種方法可以避免 AsIs 的這個問題并使資料框如圖所示?
uj5u.com熱心網友回復:
你可以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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/534811.html
標籤:r数据框火花
上一篇:在R中同時將列轉換為長格式
下一篇:根據其他列分配新的列值
