【问题标题】:Alter the data of a matrix as function of one of its columns in R?将矩阵的数据更改为 R 中其一列的函数?
【发布时间】:2021-02-16 20:19:57
【问题描述】:

我有一个矩阵,我想根据另一列编辑其中一列。我要编辑的列具有数值,引用列具有字符串值。

我有一个如下所示的矩阵:

M = matrix(c(1,4,7,6,5,a,b,c,a,b),5,2)
1   a    
4   b    
7   c    
6   a
5   b

我想将第二列具有“a”值的行乘以一个因子,以获得这样的矩阵(例如乘以 2):

2   a    
4   b    
7   c    
12  a
5   b

【问题讨论】:

  • 旁注:矩阵只能容纳一种类型,在您的情况下是字符。也许你需要一个数据框/列表?这些字母也应该被引用。 “a”、“b”等

标签: r matrix


【解决方案1】:

首先,矩阵应该只包含一个类类型(例如,字符或整数或数字等)。我建议对不同类类型的列使用数据框。

d <-  data.frame(num = c(1,4,7,6,5),str = c("a","b","c","a","b"))
d[d$str == "a","num"] <- d[d$str == "a","num"]*2

> d
  num str
1   2   a
2   4   b
3   7   c
4  12   a
5   5   b

【讨论】:

    【解决方案2】:

    我们可以使用

    df1 <- type.convert(as.data.frame(M), as.is = TRUE)
    df1$V1 <- ifelse(df1$V2 == 'a', df1$V1 * 2, df1$V1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多