根据一列值替换data.frame中的数值
我有一个data.frame,看起来像: 当col4中有一个数字时,我想用0替换col2中的数值。 换句话说,期望的输出将是:根据一列值替换data.frame中的数值,r,R,我有一个data.frame,看起来像: 当col4中有一个数字时,我想用0替换col2中的数值。 换句话说,期望的输出将是: 有人能帮我吗 您可以使用is.na输出的求反来查找col4不是na的位置 where.notNA <- !is.na(DF$col4) where.notNA您可以使用is.na输出的否定来查找col4不是na where.notNA <- !is.na(DF$col4) where.notNA@Mattrition的答案是最好的,但这里有一个ifels
有人能帮我吗 您可以使用
is.na
输出的求反来查找col4
不是na
的位置
where.notNA <- !is.na(DF$col4)
where.notNA您可以使用is.na
输出的否定来查找col4
不是na
where.notNA <- !is.na(DF$col4)
where.notNA@Mattrition的答案是最好的,但这里有一个ifelse
方法
> DF$col2 <- ifelse(!is.na(DF$col4), 0, DF$col2)
> DF
## col1 col2 col3 col4
## 1 Name_1 0.3 Sample1 NA
## 2 Name_2 0.2 Sample2 NA
## 3 Name_3 0.0 Sample3 1
## 4 Name_4 0.4 Sample4 NA
## 5 Name_5 0.0 Sample5 2
>DF$col2 DF
##col1 col2 col3 col4
##1个名称\u 1 0.3样本1 NA
##2名称2 0.2样本2 NA
##3名称\u 3 0.0样本3 1
##4名称4 0.4样本4 NA
##5 Name_5 0.0样本5 2
@Mattrition的答案是最好的,但这里有一个ifelse
方法
> DF$col2 <- ifelse(!is.na(DF$col4), 0, DF$col2)
> DF
## col1 col2 col3 col4
## 1 Name_1 0.3 Sample1 NA
## 2 Name_2 0.2 Sample2 NA
## 3 Name_3 0.0 Sample3 1
## 4 Name_4 0.4 Sample4 NA
## 5 Name_5 0.0 Sample5 2
>DF$col2 DF
##col1 col2 col3 col4
##1个名称\u 1 0.3样本1 NA
##2名称2 0.2样本2 NA
##3名称\u 3 0.0样本3 1
##4名称4 0.4样本4 NA
##5 Name_5 0.0样本5 2
DF$col2[!is.na(DF$col4)] <- 0
> DF$col2 <- ifelse(!is.na(DF$col4), 0, DF$col2)
> DF
## col1 col2 col3 col4
## 1 Name_1 0.3 Sample1 NA
## 2 Name_2 0.2 Sample2 NA
## 3 Name_3 0.0 Sample3 1
## 4 Name_4 0.4 Sample4 NA
## 5 Name_5 0.0 Sample5 2