R data.table,如何为每个单元格值不等于0加1

标签 r

我有二进制 R data.frame,第一列是 ID。如何将这些非零值加 1?

id      A   B  C
001     0   1  0
002     0   0  1

应该变成

id      A   B  C
001     0   2  0
002     0   0  2

最佳答案

我们可以乘以想要的数字,利用 0 乘以任何值返回 0

df1[-1] <- df1[-1] * 2

或者一个选项是在列的子集上创建一个逻辑矩阵,使用它来对值进行子集化并分配数字

df1[-1][df1[-1] ==1] <- 2

或者添加

df1[-1][df1[-1] ==1] <- df1[-1][df1[-1] ==1] + 1

关于R data.table,如何为每个单元格值不等于0加1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63946186/

相关文章:

R nest/unnest of dataframe 导致不相同的对象

r - 使用 devtools::install_git 从 Gitlab 安装非公共(public)包

css - 具有长名称的 Shiny selectInput/pickerInput 应该溢出侧边栏

r - 两个不同维度矩阵之间的相关性

r - 根据值排名过滤数据框

r - data.table v.1.11.0+ 不再读取由 v.1.10.4-3 读取的数据文件

c - 旧 C 代码转换为 R

r - 将新列添加到数据框中,并将重复值粘贴在一起

r - 在数据框创建的循环中,使用 data.table 包中的 set() 将值从一个数据框复制并粘贴到另一个数据框

r - 根据每组的其他列匹配列的值