r - 如何在 R 中将数据更改为二进制并保留行名称列?

标签 r dataframe binary

我有一个看起来像这样的数据框

Site <- c("X1","X2","X3","X4","X5","X6","X7","X8","X9","X10")
A <- c(0,0,1,2,4,5,6,7,13,56)
B <- c(1,0,0,0,0,4,5,7,7,8)
C <- c(2,3,0,0,4,5,67,8,43,21)
D <- c(134,0,0,2,0,0,9,0,45,55)
mydata <- data.frame(Site,A,B,C,D,stringsAsFactors=FALSE)

我想将所有 > 0 的值转换为 1(即二进制),而不危及列名和行名。

我试过了mydata[mydata>=1]<-1但它也将我的第一列(行名称)更改为 1:

 head(mydata)
  Site A B C D
1    1 0 1 1 1
2    1 0 0 1 0
3    1 1 0 0 0
4    1 1 0 0 1
5    1 1 0 1 0
6    1 1 1 1 0

那么如何只将值更改为二进制,而不是行名称?

最佳答案

我们可以创建一个逻辑矩阵并强制转换为二进制

mydata[-1] <- +(mydata[-1] > 0)

关于r - 如何在 R 中将数据更改为二进制并保留行名称列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43449754/

相关文章:

删除多年范围内的所有日期

r - 从 plm 固定效应模型中提取方差-协方差矩阵

python - 根据字典检查数据帧值(作为键,值元组)的矢量化方法?

java - 将十六进制字符串转换为二进制字符串 - Java

python - 在 python 中简单编辑二进制文件

r - 向量化包含 which 语句和函数的 for 循环

r - 带有 ggplot map 的 Shiny 应用程序 - 多边形颜色与用户输入不匹配

python - 我应该使用什么索引将 numpy 数组转换为 pandas 数据框?

python - Taipy:没有显示图表,可能是由于行中的 "Invalid tag name ' 文本”

十六进制转二进制