[英]How to cbind data.frames with differing lengths without knowing the lengths of the data.frames
[英]How to cbind columns from a data frame of differing lengths by inserting NAs?
我有一個數據框架列表L,每個框架有兩列...一個鍵和一個值列。 我想創建一個數據框,其中第i列是第i數據框的值列。 問題在於列表L中的不同數據幀具有略有不同的鍵(大多數情況下相同,但是從data.frame到data.frame給出或取出一對),因此使用cbind進行的簡單do.call不會被剪切它)。 我遍歷了數據幀的列表,並獲取了鍵列的並集,以獲得了包含所有鍵的一組bigKeySet ...我現在想做的就是構建此data.frame,其中每個行都有一行bigKeySet中的鍵中的一個,如果該data.frame沒有該鍵的條目,則在列中提供NA條目。 我不確定如何執行此操作-有什么建議嗎?
沒有一些示例數據,我不確定,但是:
merge(df1,df2,all=T,by='keys')
將通過其鍵列組合兩個數據幀,並相應地命名值列。
假設您有一個函數valueForKey()
,該函數返回鍵(或等效語句)的值:
myKeys <- c('foo', 'bar')
bigKeySet <- c('foo', 'baz', 'bar')
result <- as.vector(mapply(function(x) { if (x %in% myKeys) print(valueForKey(x)) else print(NA) }, bigKeySet))
您可以將result
綁定到您感興趣的數據框。 對myKeys
所有實例重復myKeys
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.