根据列的值从其他列获取值

2024-04-23

对于数据框中的每一行,我想根据第三列中的值将值从一列复制到另一列。

我尝试使用组合的 for 循环和 if 函数来做到这一点:

    ## example

condition <- c("1","2","2","1","2","","3","3")
SZ01 <- c("1","1","1","1","1","","1","1")
SZ02 <- c("2","2","2","2","2","","2","2")
SZ03 <- c("3","3","3","3","3","","3","3")


df <- data.frame(cbind(condition,SZ01,SZ02,SZ03), stringsAsFactors = FALSE)


df$retribution <- NULL
df$special_prevention <- NULL
df$general_prevention <- NULL


for (i in 1:length(df$condition)){ 

  if (df$condition[i] == 1){

    df$retribution[i] <- df$SZ01[i]
    df$special_prevention[i] <- df$SZ02[i]
    df$general_prevention[i] <- df$SZ03[i]


  }else if (df$condition[i] == 2) {

    df$retribution[i] <- df$SZ02[i]
    df$special_prevention[i] <- df$SZ03[i]
    df$general_prevention[i] <- df$SZ01[i]

  }else if (df$condition[i] == 3) {

    df$retribution[i] <- df$SZ03[i]
    df$special_prevention[i] <- df$SZ01[i]
    df$general_prevention[i] <- df$SZ02[i]

  } else {
    df$retribution[i] <- "missing_condition"
    df$special_prevention[i] <- "missing_condition"
    df$general_prevention[i] <- "missing_condition"

  }
}

这似乎有效(没有错误消息),但是查看我的数据肯定有问题。

例如第 1 行有condition == 1。这意味着,对于这一行df$retribution应收到与第 1 行中的值相同的值df$SZ01.

但事实并非如此。有人可以看到我犯的错误吗?


请尝试以下操作:

condition <- c("1","2","2","1","2","","3","3")
SZ01 <- c("1","1","1","1","1","","1","1")
SZ02 <- c("2","2","2","2","2","","2","2")
SZ03 <- c("3","3","3","3","3","","3","3")


df <- data.frame(cbind(condition,SZ01,SZ02,SZ03), stringsAsFactors = F)

df$retribution <- ifelse(df$condition == "1", df$SZ01,
                         ifelse(df$condition == "2", df$SZ02,
                            ifelse(df$condition == "3", df$SZ03, "missing")))

df$special_prevention <- ifelse(df$condition == "1", df$SZ02, 
                                ifelse(df$condition == "2", df$SZ03,
                                       ifelse(df$condition == "3", df$SZ01, "missing")))

df$general_prevention <- ifelse(df$condition == "1", df$SZ03, 
                                ifelse(df$condition == "2", df$SZ01,
                                       ifelse(df$condition == "3", df$SZ02, "missing"))))

Output:

df
  condition SZ01 SZ02 SZ03 retribution special_prevention general_prevention
1         1    1    2    3           1                  2                  3
2         2    1    2    3           2                  3                  1
3         2    1    2    3           2                  3                  1
4         1    1    2    3           1                  2                  3
5         2    1    2    3           2                  3                  1
6                              missing            missing            missing
7         3    1    2    3           3                  1                  2
8         3    1    2    3           3                  1                  2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据列的值从其他列获取值 的相关文章

  • 当我用一个观察值运行回归时,为什么“fastLm()”会返回结果?

    为什么fastLm 当我用一项观察进行回归时返回结果吗 下面为什么不lm and fastLm 结果相等吗 library Rcpp library RcppArmadillo library data table set seed 1 D
  • 基于 True/False 值的 Python 优雅赋值

    我想根据三个布尔值中的值设置一个变量 最直接的方法是 if 语句后跟一系列 elif if a and b and c name first elif a and b and not c name second elif a and not
  • R 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • R:计算自上次出现某个值以来的累积总和和计数

    给定简化数据 set seed 13 user id rep 1 2 each 10 order id sample 1 20 replace FALSE cost round runif 20 1 5 75 1 category samp
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 矩阵中两个字符串的最大 nchar

    我想找到更好的方法来找到我正在相互比较的两个字符串的更大的 nchar 假设我有字符串句子匹配data frame 和我需要创建一个 max nchar string1 nchar string2 矩阵 但没有 for 循环 这是非常慢的方
  • 获取所有参数作为列表

    R 是否提供对象 函数 方法 关键字来获取所有函数参数 使用一个例子 function a b default 会提供a and b也 在函数环境内 有没有类似的说法list 这还包括a and b在结果中 或者换一种方式 简写list a
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R
  • 为什么 as.character() 返回日期列表中的整数?

    我惊讶地发现 R 中出现以下行为 as character c Sys Date gt 1 2018 02 05 as character list Sys Date gt 1 17567 为什么会出现这种情况 也就是说 显然 17567
  • r testthat 和 covr 在非包库中使用

    我希望能够使用testthat and covr在一个项目中not一个 r 包 事实上不使用任何第三方服务 只是普通的旧 r 源文件的集合 我正在努力找出这是否可行 如果可以 则已设置有关如何设置的说明 我发现假设你正在编写一个 r 包 我
  • 如何使用 ggplot2 绘制 NA 间隙

    在 R 的基本绘图中 如果数据系列 ggplot2 中存在 NA 则会绘制间隙 举个例子看看 df data frame x c 1 10 y c 1 10 df 5 7 NA plot df type l 但是 ggplot2 删除了缺失
  • 指定生存图的自定义时间点

    我正在努力使用以下方法创建生存 累积事件图ggsurvplot函数从survminer包裹 我想为我的绘图指定自定义时间点 但我不知道该怎么做 这xlim and break x by参数有点帮助 但它们创建了均匀间隔的时间点和比我想要的更
  • 从频率表生成 data.frame

    我在 2 4 数组中有包含 500 个观察值的合成数据 datax array c 120 181 50 43 41 33 24 8 dim c 2 4 dimnames datax list gender c male female pu
  • R 中 x 轴曲线的阴影面积

    所以我有一个位于 x 轴下方和上方的图表 并且想要对线和 0 之间的区域进行着色 在这里 我尝试使用多边形函数 但它只给出曲线下的面积 plot year difference1 type l polygon year difference
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • R.scale() 和 sklearn.preprocessing.scale() 之间的区别

    我目前正在将数据分析从 R 转移到 Python 当在 R 中缩放数据集时 我将使用 R scale 根据我的理解 它将执行以下操作 x mean x sd x 为了替换该函数 我尝试使用 sklearn preprocessing sca
  • rowSums 全部 NA [重复]

    这个问题在这里已经有答案了 df lt data frame a c 1 1 NA 0 1 0 b c 0 1 NA NA 0 1 c c NA 0 NA 0 1 NA d c 1 NA NA 1 1 0 rowSums df 1 NA N
  • 如何在主图区域之外的 ggplot2 中添加多个标题

    我想为页脚添加两个标题 但 ggplot 似乎只需要 1 是否有解决方法可以将注释或 geom text 添加到左下角和右下角 library ggplot2 p lt ggplot mtcars aes x wt y mpg geom p

随机推荐

  • 如何通过单击使 java Module JAR 执行

    我在 Windows 7 上使用 OpenJDK 11 和 OpenJFX 11 我的 IDE 是 Netbeans 9 我复制了以下教程 由 NetbeansVideos 发布 JDK 11 OpenJFX Apache Ant 和 Ap
  • Angular 7 - 浏览器刷新始终重定向到主页

    浏览器刷新后将用户保留在同一页面上的最佳方法是什么 Example 用户位于www domain com page1 http www domain com page1 当他刷新浏览器时 路由器重定向到www domain com home
  • PHP“记住我”安全漏洞?

    我正在编写一个配备 记住我 的登录表单 到目前为止 我读过的教程 部分是为了确保我做得正确 都说将加密的密码存储在 cookie 中与用户名 然后 每次 PHP 检查当前用户是否未登录时 检查他们的 cookie 并查找这些值 如果用户名与
  • 使用 pandas.read_json 时出现 ValueError

    我制作了一个 250MB 的 json 文件 应如下所示 A uniquevalue0 B 1 2 3 A uniquevalue1 B 1 A uniquevalue2 B 1 2 3 4 其中 B 值可以是变量 len gt 1 Thi
  • 在没有实际的 SQL Server 数据库启动和运行的情况下,我将如何配置工作量测试工具来模拟实体框架的 DbContext?

    我们团队的应用程序开发涉及使用工作量测试工具来模拟我们的实体框架的 DbContext 然而 工作量测试工具似乎需要查看应用程序使用的实际 SQL Server 数据库 以便模拟我们的实体框架的 DbContext 这似乎违反了正确的单元测
  • 如何在结构上使用 offsetof() ?

    我想要 offsetof 参数行mystruct1 我试过了 offsetof struct mystruct1 rec structPtr1 u line line and also offsetof struct mystruct1 l
  • 使用 asp.net core 删除所需的验证

    我有一个客户需要表单上有两个按钮 保存未完成表格进度的表格 因此 此表单仍然需要验证字段 但会忽略所需的验证 另一个按钮将需要运行包含必填字段的完整验证 我正在使用库存标准 asp net core 项目 我相信该项目使用 jquery v
  • IE 不会在使用 window.open 创建的窗口中加载 PDF

    问题就在这里 仅发生在 Internet Explorer IE 中 我有一个页面 其中包含指向几种不同类型文件的链接 这些文件中的链接执行一个 Javascript 函数 该函数打开一个新窗口并加载特定文件 这非常有效 除非我需要在新窗口
  • onProviderEnabled 不起作用?

    为了在 GPS 和网络位置提供商之间切换 我只是尝试了这样的方式 以确定何时禁用一个提供商 切换到另一个提供商 但是我的onProviderEnabled 没有被调用 public void onProviderDisabled Strin
  • 正则表达式时区

    我需要一个有效时区的正则表达式 尝试了以下一个 但我不确定 请帮我找出以下正则表达式中的错误 Edited 这里冒号和分钟是可选的 我怎样才能将其更改为强制 如果没有分钟 用户应输入 00 05 00 请帮我解决这个问题 var chkzo
  • 如何将 Git 补丁应用到具有不同名称和路径的文件?

    我有两个存储库 其中 我对文件进行了更改 hello test 我提交更改并从该提交创建补丁git format patch 1 HEAD 现在 我有第二个存储库 其中包含一个与 hello test 内容相同的文件 但以不同的名称放置在不
  • 具有颜色渐变的 3D 散点图,其中颜色取决于计数

    我有一个包含点的数据框 其中包括点的 x y 和 z 坐标以及 计数 每个数据点的数字在 1 到 187 之间 我想将 计数 与颜色渐变相关联 例如1是绿色 187是红色 然后用x y和z坐标绘制数据点的散点图 其中每个数据点的颜色都被编码
  • ECMAScript 规范是否允许 Array 成为“超类”?

    我正在寻找任何迹象表明 超类化 内置类型是否有效根据规格 也就是说 给定任何假设的 ECMAScript 一致实现 超类化 内置函数是否会通过影响类构造函数的创建算法来破坏运行时 超一流 我创造的一个术语 指的是一个类 其通过构造它或将其作
  • Cookie 未设置或首次不起作用

    在每个页面上 我都设置了一个 cookie 来为与该会话对应的标题按钮着色 问题是 当我第一次在不同的部分打开页面时 cookie 仍然是旧的 彩色按钮也是如此 然后 如果我再次单击同一按钮 则 cookie 会被正确设置 为什么 这是我的
  • 为什么苹果设备在自己的播放器中播放html5视频?

    我尝试了不同的 html 播放器并使用 html5 视频标签 然而 苹果设备 ipod touch 4 iphone 4 ipad 在其中显示 html5 视频自己的球员 我的主要目标是在视频上显示叠加广告 我决定借助绝对定位和 z ind
  • iOS4:如何使用视频文件作为 OpenGL 纹理?

    我正在尝试将视频文件的内容 暂时不包含音频 显示到 OpenGL 中的 UV 映射 3D 对象上 我已经在 OpenGL 中做了相当多的工作 但不知道从哪里开始处理视频文件 而且大多数示例似乎都是从相机获取视频帧 这不是我想要的 目前我觉得
  • 列表切片的迭代

    我想要一个算法来迭代列表切片 切片大小在函数外部设置并且可以不同 在我看来 它是这样的 for list of x items in fatherList foo list of x items 有没有办法正确定义list of x ite
  • 如何使 raiserror 和 nowait 与 sqlcmd 一起使用?

    这是命令行 sqlcmd S localhost U myuser P mypwd b r0 Q raiserror hello 10 1 with nowait waitfor delay 00 00 10 raiserror world
  • 无法使用 PayPal 模块处理交易

    我正在尝试测试 Python 和 Paypal 集成 这是我对 PayPal 模块的调用 http www chickenwingsw com paypal on python http www chickenwingsw com payp
  • 根据列的值从其他列获取值

    对于数据框中的每一行 我想根据第三列中的值将值从一列复制到另一列 我尝试使用组合的 for 循环和 if 函数来做到这一点 example condition lt c 1 2 2 1 2 3 3 SZ01 lt c 1 1 1 1 1 1