[英]R: Filling Missing Values (NA) by Multiplying Two Separate Vectors
我的大腦凍結了。
這就是我所擁有的:
C <- c(C1, C2, C3) # A constant for every row in the data frame
r <- c(r1, r2, r3, r4) # A ratio for every column in the data frame
我的數據框如下所示:
1 2 3 4
a 0.7 0.4 NA NA
b NA NA 0.3 NA
c NA 0.6 NA 0.4
我需要用C和r的乘積來填充NA,使其看起來像這樣:
1 2 3 4
a 0.7 0.4 C1*r3 C1*r4
b C2*r1 C2*r2 0.3 C2*r4
c C3*r1 0.6 C3*r3 0.4
請注意,僅對NA進行乘法運算,而不對已經存在的數字進行乘法運算。 我知道is.na
是用來挑選NA的,它可能只是線性代數,但是我的大腦已經is.na
一天。 任何幫助都會很棒。
謝謝。
如果mm是您的矩陣,則可以像這樣填充缺失值:
mm[is.na(mm)] <- outer(C,r)[is.na(mm)]
mm <- read.table(text=' 1 2 3 4
a 0.7 0.4 NA NA
b NA NA 0.3 NA
c NA 0.6 NA 0.4')
C <- c(1, 1, 1) # A constant for every row in the data frame
r <- c(2, 2, 2, 2)
mm[is.na(mm)] <- outer(C,r)[is.na(mm)]
# X1 X2 X3 X4
# a 0.7 0.4 2.0 2.0
# b 2.0 2.0 0.3 2.0
# c 2.0 0.6 2.0 0.4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.