亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建一個data.frame,其中一列是列表

創建一個data.frame,其中一列是列表

慕碼人8056858 2019-10-18 14:56:25
我知道如何添加列表列:> df <- data.frame(a=1:3)> df$b <- list(1:1, 1:2, 1:3)> df  a       b1 1       12 2    1, 23 3 1, 2, 3這可行,但是不行:> df <- data.frame(a=1:3, b=list(1:1, 1:2, 1:3))Error in data.frame(1L, 1:2, 1:3, check.names = FALSE, stringsAsFactors = TRUE) :   arguments imply differing number of rows: 1, 2, 3為什么?另外,有沒有辦法df在單個調用中創建(上方)data.frame?
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

來自?data.frame:


如果將列表或數據幀或矩陣傳遞給“ data.frame”,則好像每個組件或列都作為單獨的參數傳遞(“ class.model.matrix”類的矩陣以及受“ I”保護的矩陣除外) ')。


所以


data.frame(a=1:3,b=I(list(1,1:2,1:3)))

似乎有效。


查看完整回答
反對 回復 2019-10-18
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

如果您正在使用data.tables,則可以避免致電I()


library(data.table)

# the following works as intended

data.table(a=1:3,b=list(1,1:2,1:3))


   a     b

1: 1     1

2: 2   1,2

3: 3 1,2,3


查看完整回答
反對 回復 2019-10-18
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

data_frameS(所謂的不同tibbles,tbl_df,tbl)原生支持使用列表的列的創建data_frame構造函數。使用它們,加載與他們如許多庫之一tibble,dplyr或tidyverse。


> data_frame(abc = letters[1:3], lst = list(1:3, 1:3, 1:3))

# A tibble: 3 × 2

    abc       lst

  <chr>    <list>

1     a <int [3]>

2     b <int [3]>

3     c <int [3]>

它們實際上是data.frames在幕后,但有些修改。它們幾乎總是可以正常使用data.frames。我發現的唯一例外是,當人們進行不適當的類檢查時,它們會引起問題:


> #no problem

> data.frame(x = 1:3, y = 1:3) %>% class

[1] "data.frame"

> data.frame(x = 1:3, y = 1:3) %>% class == "data.frame"

[1] TRUE

> #uh oh

> data_frame(x = 1:3, y = 1:3) %>% class

[1] "tbl_df"     "tbl"        "data.frame"

> data_frame(x = 1:3, y = 1:3) %>% class == "data.frame"

[1] FALSE FALSE  TRUE

> #dont use if with improper testing!

> if(data_frame(x = 1:3, y = 1:3) %>% class == "data.frame") "something"

Warning message:

In if (data_frame(x = 1:3, y = 1:3) %>% class == "data.frame") "something" :

  the condition has length > 1 and only the first element will be used

> #proper

> data_frame(x = 1:3, y = 1:3) %>% inherits("data.frame")

[1] TRUE


查看完整回答
反對 回復 2019-10-18
  • 3 回答
  • 0 關注
  • 1038 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號