R:如果满足某些条件,则添加和修改观测值
我有这样一个数据框:R:如果满足某些条件,则添加和修改观测值,r,copy,dataframe,rows,R,Copy,Dataframe,Rows,我有这样一个数据框: nation post frequency count Australia 0 4 2 Australia 1 7 2 Brazil 0 1 1 Finland 1 1 1 我喜欢在count==1时添加观察值,要添加的观察值需要满足以下条件: 如果post=0,则添加的观测值的post值为1 如果post=1,则添加的
nation post frequency count
Australia 0 4 2
Australia 1 7 2
Brazil 0 1 1
Finland 1 1 1
我喜欢在count==1时添加观察值,要添加的观察值需要满足以下条件:
nation post frequency count
Australia 0 4 2
Australia 1 7 2
Brazil 0 1 2
Brazil 1 0 2
Finland 1 1 2
Finland 0 0 2
作为一个新手编程似乎相当复杂。非常感谢 可能有更好的方法,但这里有一个非常直观的
if
语句
Reduce(rbind, Map(function(x) {
if(nrow(x) == 1L) {
rb <- rbind(x, x) ## add a duplicate row
rb[2,2] <- !rb[1,2] ## change post to "opposite" of its original value
rb[2,3] <- 0L ## change frequency to zero
rb$count <- 2L ## change count to 2
rb
} else {
x
}
}, split(df, df$nation)))
# nation post frequency count
# 1 Australia 0 4 2
# 2 Australia 1 7 2
# 3 Brazil 0 1 2
# 21 Brazil 1 0 2
# 4 Finland 1 1 2
# 22 Finland 0 0 2
Reduce(rbind,Map)函数(x){
如果(nrow(x)=1L){
谢谢你,理查德。你救了我的命!!