簡體   English   中英

從列表的data.frame元素連接一列

[英]Concatenate a column from data.frame elements of a list

我正在尋找一種慣用的方式來連接一個名為“ x”的列,該列存在於列表的每個data.frame元素中。 我通過使用lapplyReduce提出了一個包含兩個步驟的解決方案。 第二次嘗試僅使用Reduce嘗試失敗。 我可以只使用帶有一個匿名函數的Reduce來執行此操作嗎?

#data
xs <- replicate(5, data.frame(x=sample(letters, 10, T), y =runif(10)), simplify = FALSE)
# This works, but may be still unnecessarily long
otmap = lapply(xs, function(df) df$x)
jotm = Reduce(c, otmap)
# This does not count as another solution:
jotm = Reduce(c, lapply(xs, function(df) df$x))

# Try to use only Reduce function. This produces an error
jotr =Reduce(function(a,b){c(a$x,b$x)}, xs)
# Error in a$x : $ operator is invalid for atomic vectors

我們可以在提取“ x”列后unlist列出

unlist(lapply(xs, `[[`, 'x'))
#[1] b y y i z o q w p d f f z b h m c u f s j e i v y b w j n q e w i r h p z q f x a b v z e x l c q f
#Levels: b d i o p q w y z c f h m s u e j n v r x a l

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM