R語言行/列合並


bind_rows & bind_cols

這兩個命令是do.call(rbind, dfs)do.call(cbind, dfs)的代替,使用起來更有效率。

one <- starwars[1:4, ]
two <- starwars[9:12, ]

bind_rows(one, two)
bind_rows(list(one, two)) # a list of dataframes
bind_rows(list(one, two), list(two, one))
bind_rows(split(starwars, starwars$homeworld))

其中split(starwars, starwars$homeworld)得到的是一個list的dataframes,每個list元素中包含的dataframes數量不同,根據homeworld進行了split。

輸入也可以是vecotr

bind_rows(
  c(a = 1, b = 2),
  c(a = 3, b = 4)
)

bind_rows(
  c(a = 1, b = 2),
  tibble(a = 3:4, b = 5:6),
  c(a = 7, b = 8)
)

可以設置.id參數用於區分dataframe來源

bind_rows(list(one, two), .id = "id")
bind_rows(list(a = one, b = two), .id = "id")
bind_rows("group 1" = one, "group 2" = two, .id = "groups")

bind_colsbind_rows簡單,不需要考慮匹配問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM