-1

我有一个大数据集如下:

head(humic)
SUERC.No GU.Number d13.C Age.(BP)    error Batch.Number AMS.USED Year Type 

Sampletype
400    32691       535   -28 3382.981 34.74480            1       S3 2011    2         ha
401    32701       536   -28 3375.263 34.86087            1       S3 2011    2         ha
402    32711       537   -28 3308.103 34.83100            1       S3 2011    2         ha
403    32721       538   -28 3368.721 31.58641            1       S3 2011    2         ha
404    32731       539   -28 3368.604 34.72326            1       S3 2011    2         ha
405    32741       540   -28 3314.713 32.83147            1       S3 2011    2         ha

tail(humic)
     SUERC.No GU.Number d13.C Age.(BP)    error Batch.Number AMS.USED Year Type Sampletype
5445    70880      3962 -28.4 3390.458 29.12815           34       S4 2016    2         ha
5446    70890      3963 -28.5 3358.861 37.14896           34       S4 2016    2         ha
5447    70900      3964 -28.5 3363.626 26.71573           34       S4 2016    2         ha
5448    70910      3965 -28.5 3408.907 26.69665           34       S4 2016    2         ha
5449    70920      3966 -28.5 3348.463 29.01492           34       S4 2016    2         ha
5450    70930      3967 -28.4 3375.247 26.78261           34       S4 2016    2         ha

我正在寻找一个变量来识别基于变量 GU.Number 的奇数和偶数对。这些数字标识同一对象的重复项 - 具有相同的 d13.C 值。

例如,535 - 536 537 - 538 3963-3964 3965-3966 是成对的。

注意,GU.Number 列不是序列,缺少一些数字。

4

1 回答 1

1
even.rows <- which(!(humic$GU.Number %% 2))

has.pair  <- rep(0,nrow(humic))

for(i in even.rows){
        has.pair[i] <- max((humic$GU.Number[i] + c(1,-1)) %in% humic$GU.Number)
}

# add as column of data
humic$has.pair <- has.pair

如果是偶数并且存在比给定的 小一或大一的奇数,则该has.pair列将为 1 。否则它将为 0。作为单行:GU.NumberGU.NumberGU.Number

humic$has.pair <- sapply(1:nrow(humic), 
            function(x) with(humic,(!(GU.Number[x] %% 2))*max((GU.Number[x] + c(1,-1)) %in% GU.Number)))
于 2017-02-08T22:50:13.180 回答