我用一个例子解释,我插入一个数字(例如,我的输入是2010000),我需要输入第三行中值的ccompare总和(我的条件:第三行中元素的总和) row< =我的输入),直到我的条件为True,我需要获取第一行和第二行中的值。 例如,在2010000的情况下,我需要得到
1 2 3 4
-1 -1 -1 -1
P.S:我不应该读第三行的最后一个正值。
我可以用for loops
来做,但是你知道R的循环速度不快。
由于
我的数据:
1 2 3 4 10 37 NA
-1 -1 -1 -1 -1 -1 -6
549493 217514 732961 506807 113712 139339 2259826
答案 0 :(得分:0)
你的解决方案可能是
#setting up a data frame with your data structure
row1 <- c(1,2,3,4,10,37,NA)
row2 <- c(-1,-1,-1,-1,-1,-1,-6)
row3 <- c(549493,217514,732961,506807,113712,139339,2259826)
df <- rbind(row1,row2,row3)
#generating a row4 with sums upto that point
row4 <- sapply(1:length(df[3,]),function(x) sum(df[3,1:x]))
#your input
input <- c(2010000)
#logical vector where your condition is reached
row5 <- row4<input
#index where the summation is <= input
index <- min(which(row5 == FALSE))
#your results
answer_row1 <- row1[1:index]
answer_row2 <- row2[1:index]
#youv can format your results which ever way you want now that you
#have the value of #index
让我知道这是否有效
Lune3141