Replace 如何从数据帧的子集中删除值
我有一个大数据框。我想替换基于数据子集的值Replace 如何从数据帧的子集中删除值,replace,subset,Replace,Subset,我有一个大数据框。我想替换基于数据子集的值 dat <- data.frame(col1 = c("A", "A", "B", "B"), col2 = c(50, 100, 200, 250)) 警告消息已经给了您一些提示。第一条消息告诉您,条件被要求提供多个值。这是因为您正在指定整个列。第二条消息告诉您,对因子使用类似的条件是没有意义的 第二个问题来自DF的构建方式。通过添加stringsAsFactors=FALSE可以避免col1自动生成因子:
dat <- data.frame(col1 = c("A", "A", "B", "B"),
col2 = c(50, 100, 200, 250))
警告消息已经给了您一些提示。第一条消息告诉您,条件被要求提供多个值。这是因为您正在指定整个列。第二条消息告诉您,对因子使用类似
的条件是没有意义的
第二个问题来自DF的构建方式。通过添加stringsAsFactors=FALSE
可以避免col1自动生成因子:
(dat col1 col2
#>1 A 50
#>2 A 100
#>3B200
#>4B250
由(v0.3.0)于2020年1月21日创建
如果要使用已编写的If序列,必须编制索引,以便检查列中的每一行。可以这样做:
for ( i in seq_along(dat$col1)){
dat$col1[i]<- ifelse(dat$col2[i] > 75, NA, dat$col1[i])
}
dat
#> col1 col2
#> 1 A 50
#> 2 <NA> 100
#> 3 <NA> 200
#> 4 <NA> 250
由(v0.3.0)于2020年1月21日创建
在这里,您可以根据需要的两个条件更改col2。
我希望这能帮助你。这正是我所需要的。谢谢!这很好。请接受答案,这样其他人也可以从中获益。
for ( i in seq_along(dat$col1)){
dat$col1[i]<- ifelse(dat$col2[i] > 75, NA, dat$col1[i])
}
dat
#> col1 col2
#> 1 A 50
#> 2 <NA> 100
#> 3 <NA> 200
#> 4 <NA> 250