我有一个带ID(名称)的数据框,如下所示:
head(ped1)
V1 V2 V3
31701 31272 25526
31702 31272 26002
31703 31272 25861
31704 31272 24324
31705 31272 31413
31706 31272 31701
我需要为第一列的每个元素赋予新ID(顺序号)。此外,列V1中的ID可以显示在V2和V3中。
所以ID必须在其他列中匹配,如下所示:
head(ped1)
V1 V2 V3
1 7 8
2 7 9
3 7 10
4 7 11
5 7 12
6 7 1
如何归因新ID?
答案 0 :(得分:0)
以下是使用match
和sapply
在使用unlist
获得的ID的唯一向量时使用# get IDs as a vector
ids <- unique(unlist(df))
# produce data.frame with new ids by feeding each variable to match, using ids as table
data.frame(lapply(df, match, table=ids))
V1 V2 V3
1 1 7 8
2 2 7 9
3 3 7 10
4 4 7 11
5 5 7 12
6 6 7 1
和df <- read.table(header=TRUE, text="V1 V2 V3
31701 31272 25526
31702 31272 26002
31703 31272 25861
31704 31272 24324
31705 31272 31413
31706 31272 31701")
的基础R的方法。
a(validator: { val, obj, errors ->
if (!val ...) {
errors.rejectValue('a', 'whatever.problem')
return
}
if (!obj.b ...) {
errors.rejectValue('b', 'some.other.problem')
return
}
if (!obj.c ...) {
errors.rejectValue('c', 'another.problem')
return
}
})
数据强>
{{1}}