Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 如何从数据帧的子集中删除值_Replace_Subset - Fatal编程技术网

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