簡體   English   中英

如何通過插入NA從不同長度的數據幀綁定列?

[英]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.

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