【发布时间】:2021-08-05 02:54:51
【问题描述】:
我想为下面的data.frame 创建一个stop(),这样对于每个唯一的id,如果pos 是变化的(例如,由1s、2s 等组成),那么,如果@987654324 cont==TRUE 不同的行的@ 值,我们应该抛出一个错误。
这在 R 中可能吗?
在下面的玩具示例中,id == "B" 应该抛出一个错误,因为 pos 是变化的 (1,2,3),而 mp 的值 (即 1,3) 对应于 @987654329 的行@ 不一样。
dat <- data.frame(id = rep(c("A","B"),2:3), mp = c(1,5, 2,1,3), cont = c(F,T, F,T,T), pos = c(1,1, 1:3))
# id mp cont pos
#1 A 1 FALSE 1
#2 A 5 TRUE 1
#3 B 2 FALSE 1
#4 B 1 TRUE 2
#5 B 3 TRUE 3
# Desired stop() message:
"Error: 'B' has a wrong value."
【问题讨论】:
标签: r dataframe function error-handling