簡體   English   中英

根據R中另一個變量的值創建一個變量的rowSum

[英]Creating rowSums of one variable conditional on the value of another variable in R

我希望使用R中的rowSums函數計算var1至var10的總和,但僅適用於var11等於1的行。

我嘗試對數據進行子集設置以僅為var11等於1的數據創建var1-var10的總和,然后將我的原始數據幀與子集數據幀合並。 問題是,這導致我的主數據集排除了var11等於1的所有變量的所有行,而我想保留整個數據集的行,但僅將它們指定為NA var1-var10。

首先,我創建一個樣本數據:

m1=matrix(sample(x = 1:10, size = 100, replace = T), nrow=10, ncol=10)
m2= c(sample(1:3, size=10, replace=T))
df = data.frame(cbind(m1, m2))
names(df) = c('var1', 'var2', 'var3', 'var4', 'var5', 'var6', 'var7', 'var8', 'var9', 'var10', 'var11')

如下所示:

df
# var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 var11
# 1    10    5    1    9    1    6    7    3    8     3     1
# 2    10   10    3    9    4   10    4    3   10     6     1
# 3    10    9    3    6    9    6    1    5   10     1     2
# 4     7    5    2    8   10    9    9    3    3     4     2
# 5     9    8    8   10    1    6    7    7    3     7     2
# 6     5    5    1    1    4    1    6    6    8     2     1
# 7     3    6    9    6    9    1    1    8    6     8     2
# 8     3   10   10    2    2   10    4    7    7     2     2
# 9     4   10    1    9    4    4    2    2    6     8     3
# 10    3   10    2    5    5   10    1    7    6     4     2

然后,我將進行調節:

df$ROWSUMS=NA
df[df$var11 == 1, 'ROWSUMS']=rowSums(df[df$var11 == 1,1:10])
df

# var1 var2 var3 var4 var5 var6 var7 var8 var9 var10 var11 ROWSUMS
# 1    10    5    1    9    1    6    7    3    8     3     1      53
# 2    10   10    3    9    4   10    4    3   10     6     1      69
# 3    10    9    3    6    9    6    1    5   10     1     2      NA
# 4     7    5    2    8   10    9    9    3    3     4     2      NA
# 5     9    8    8   10    1    6    7    7    3     7     2      NA
# 6     5    5    1    1    4    1    6    6    8     2     1      39
# 7     3    6    9    6    9    1    1    8    6     8     2      NA
# 8     3   10   10    2    2   10    4    7    7     2     2      NA
# 9     4   10    1    9    4    4    2    2    6     8     3      NA
# 10    3   10    2    5    5   10    1    7    6     4     2      NA

暫無
暫無

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

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