在R中有效的data.table中更新一列两次

鲍尔

我有一个数据表,看起来像这样:

DT <- data.table(Zeit = c(0.024, 0.4, 0.05),
                 Gier = c(1, 2, 3),
                 GierVZ = c(1, 0, 1),
                 Quer = c(2, 4, 6))

现在,我想更新并向此数据表中添加一些列。但是我无法更新Gier两次,因为它将创建重复副本并出现错误。

DT[, ':='(Zeit   = round(Zeit, digits = 2),
          Gier   = replace(Gier, Gier == 163.83, NA),
          GierVZ = factor(GierVZ, levels = c(0, 1), labels = c("positiv", "negativ")),
          Quer   = Quer * 9.81,
          Gier   = ifelse(GierVZ == "negativ", Gier * -1, Gier))]

通常如何避免这种情况,仍然创建一些可读的快速代码?我确信对此有一个简单的答案。但是我是数据表的新手,而且我认为(至少目前)它不像dplyr那样直观,但是对于我的大数据来说它要快得多。

用户名

您可以Gier用大括号括起来:

DT[, ':='(Zeit   = round(Zeit, digits = 2),
          Gier   = {Gier[Gier == 163.83] <- NA; ifelse(GierVZ, -Gier, Gier)},
          GierVZ = factor(GierVZ, levels = c(0, 1), labels = c("positiv", "negativ")),
          Quer   = Quer * 9.81)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R中同一列的两次迭代

按多列中的值在 R 中有效过滤数据帧

在R中有效地重命名连续列组

无法在python中启动h2o-但在R中有效-连接被拒绝

在Pandas中从n种可能性中有效选择r个结果

如何在R中有效地对字符串中的字母重新排序?

查询在 SQL Server 中有效,但在 R 中无效

如何从宽格式的数据中有效地在 R 中绘制大量图形?

R data.table内存有效的rbindlist

fibonacci在python中有效,但在Java中失败

orphanRemoval在PostgreSQL中有效,但在hsqldb中无效

命令在crontab中失败,但在终端中有效

函数在查询中有效,但在约束中无效

Scrapy 在 shell 中有效,但在代码中无效

表格在Firefox中无法响应,在Chrome中有效

代码在终端中有效,但在脚本中无效

WritePrivateProfileString 在 main 中有效但在函数中无效

位置粘性在 Firefox 中有效,在 Chrome 中无效

MATLAB Line vector + row vector = array在r2017a中有效,但在r2016a中无效

尝试下载文件时,R CMD 检查在 ubuntu 中失败,但功能在 R 中有效

在R中使用BDP查找SETTLE_DTE(在excel中有效,但在R中无效)

Ubuntu linux 上的 R 和 SSL/curl:在 R 中 SSL 连接失败,但在 curl 中有效

在R中有效地提取逻辑矩阵中每行的第一个TRUE

从 R 中的一组矩阵中有效地找到最小单元格值

在R data.table中粘贴多个列对的有效方法

R:在for循环中为矩阵行/列命名在控制台中有效,但在编织时无效

网页在浏览器中有效,但在 R 中无效:SSL 证书问题:证书已过期

如果一个int在列表中包含两次,如何创建一个有效的条件

缺少值的R data.table中的有效移位