You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BASE R环境下根据单表列条件修改另一表对应行指定列值方案

需求说明

基于R内置数据集mtcars和iris实现如下逻辑:截取两个数据集的前5行生成新数据框,以mtcars派生数据框的mpg列为判断条件,当该列值小于20时,将iris派生数据框对应行的Sepal.Length字段值设置为NA。要求仅使用BASE R语法实现,不引入tidyverse相关依赖。

样例初始数据
# mtcars前5行数据
df1 <- head(mtcars, 5)
df1
>                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
> Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
> Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
> Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
> Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
> Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
# iris前5行数据
df2 <- head(iris, 5)
df2
>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
> 1          5.1         3.5          1.4         0.2  setosa
> 2          4.9         3.0          1.4         0.2  setosa
> 3          4.7         3.2          1.3         0.2  setosa
> 4          4.6         3.1          1.5         0.2  setosa
> 5          5.0         3.6          1.4         0.2  setosa
BASE R实现代码
# 筛选出df1中mpg小于20的行索引
cond_index <- which(df1$mpg < 20)
# 为df2对应行的Sepal.Length赋值NA
df2$Sepal.Length[cond_index] <- NA
最终输出结果

修改后df1保持不变,df2的输出如下:

df2
>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
> 1          5.1         3.5          1.4         0.2  setosa
> 2          4.9         3.0          1.4         0.2  setosa
> 3          4.7         3.2          1.3         0.2  setosa
> 4          4.6         3.1          1.5         0.2  setosa
> 5           NA         3.6          1.4         0.2  setosa

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 00:39:04