R:根据同一行另一列中的值更改数据框中的值
假设我有这种数据帧:R:根据同一行另一列中的值更改数据框中的值,r,dataframe,R,Dataframe,假设我有这种数据帧: df <- data.frame( t=rep(seq(0,2),6), no=rep(c(1,2,3,4,5,6),each=3), value=rnorm(18),g=rep(c("nc","c1", NA),each=3) ) t no value g 1 0 1 0.5022163 nc 2 1 1 0.5687227 nc 3 2 1 -0.2922622 nc 4 0 2 -
df <- data.frame(
t=rep(seq(0,2),6),
no=rep(c(1,2,3,4,5,6),each=3),
value=rnorm(18),g=rep(c("nc","c1", NA),each=3)
)
t no value g
1 0 1 0.5022163 nc
2 1 1 0.5687227 nc
3 2 1 -0.2922622 nc
4 0 2 -0.3587089 c1
5 1 2 -0.9028012 c1
6 2 2 0.1926774 c1
7 0 3 0.6771236 NA
8 1 3 0.3752632 NA
9 2 3 0.2795892 NA
10 0 4 -0.4565521 nc
11 1 4 -0.1241807 nc
12 2 4 -1.2603695 nc
13 0 5 -0.6323118 c1
14 1 5 -0.6283850 c1
15 2 5 -0.2052317 c1
16 0 6 1.5996913 NA
17 1 6 -0.4802057 NA
18 2 6 -0.4255056 NA
df带有for循环
for (i in 1:nrow(df)) {
if (df$no[i] == 1 | df$no[i] == 5 | is.na(df$g[i])) {
df$value[i] <- NA
}
}
for(1中的i:nrow(df)){
if(df$no[i]==1 | df$no[i]==5 | is.na(df$g[i])){
df$value[i]df[with(df,is.na(g)|(在%c(1,5)中没有%),“value”]非常感谢你,大卫。这正是我想要的。