[英]Matching values(or rows) of columns with different lengths in a list r
我有一個包含 3 列的列表
A <- (1,2,3,4)
B <- (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24)
C <-(1,2,3,4)
我需要將列與相同的名稱保持在一起,但我需要將列 B 中的第 6 個值對齊(匹配)到列 A 和 C 的第二個值,然后將 B 中的第 12 個值對齊(匹配)到 A 和 C 中的第三個值,等等。 可以丟棄 col B 中所需值之間的數據。
我正在查看 rowwise() 來執行此操作,但我無法弄清楚如何編寫它。
這是我對泛化的最佳猜測:
x = list(
A = c(1,2,3,4),
B = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24),
C = c(1,2,3,4)
)
len = lengths(x)
x[len > min(len)] = lapply(
x[len > min(len)],
\(z) z[seq(to = length(z), length.out = min(len), by = length(z) / min(len))]
)
x
# $A
# [1] 1 2 3 4
#
# $B
# [1] 6 12 18 24
#
# $C
# [1] 1 2 3 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.