我正在尝试在R中编写一个脚本,我将从另一列中获取与某个条件相对应的值的总和。 假设我有两列,fakeVector&表格中的fakeVector1"总计"
fakeVector = c('NTC.H3','NTC.F2','NTC.F22','abc123','sample1')
fakeVector1 = c('1','2','3','4','5')
total=rbind(fakeVector, fakeVector1)
我想获取fakeVector1的值,其中fakeVector =特定值。 例如,我想获取fakeVector1值,其中fakeVector =特定值,例如" NTC.H3" 我该怎么做?
答案 0 :(得分:3)
我们可以尝试
sum(as.numeric(total["fakeVector1",][total["fakeVector",]=="NTC.H3"]))
答案 1 :(得分:1)
total[2,][which(total[1,] == "NTC.H3")]
#[1] "1"
v1 <- c('NTC.H3', 'NTC.F22', 'abc123')
sum(as.numeric(total[2,][which(total[1,] %in% v1)]))
#[1] 8
答案 2 :(得分:1)
如果您的数据集被组织为data.frame
,并且如果您想知道另一列中每个条件的一列的总和,则可以使用快速data.table
包。
# load library
library(data.table)
# get your data
fakeVector = c('NTC.H3','NTC.F2','NTC.F22','abc123','sample1')
fakeVector1 = c('1','2','3','4','5')
total=cbind(fakeVector, fakeVector1)
total <- as.data.table(total)
total$fakeVector1 <- as.numeric(total$fakeVector1)
# Solution
total[, .(mysum = sum(fakeVector1)), by=.(fakeVector)]