gpt4 book ai didi

R,作为矩阵数据导入,计算行总和但不包括标题

转载 作者:行者123 更新时间:2023-12-02 01:37:32 25 4
gpt4 key购买 nike

我是一名学生,正在做一个项目,但我没有用 R 做一些基本的事情,这非常令人沮丧。

data <- read.xlsx("dataset.xlsx",1, header=1)
#Creating a matrix with headers.
matrix <- as.matrix(data, row.names=1, col.names=1)

Sum <- rowSums(matrix, na.rm = FALSE, dims = 1)

数据看起来像这样:

    Point1  Point2   Point3
SP1 0 1 1
SP1 0 1 0
SP1 1 1 0
SP1 1 1 1
SP1 0 1 0

此数据使用 xlsx 包在 R 中定位和导入。之后我想计算行总和并将其导入矩阵以创建如下内容:

    Point1  Point2   Point3  Sums
SP1 0 1 1 2
SP1 0 1 0 1
SP1 1 1 0 2
SP1 1 1 1 3
SP1 0 1 0 1

但是,我无法让它工作。我使用的代码不断返回非数字值。显然,它可能会尝试使用第一行和第一列进行计算,它们是标题。为了将来的目的,我希望 R 始终排除第一行和第一列,并将它们视为标题并将 0 和 1 视为数字。

你们能帮帮我吗?

干杯碧 Jade

最佳答案

您的矩阵包含字符,您尝试对它们求和。所以你首先需要将你想要求和的子矩阵转换为numeric(最好在这里使用class而不是as.numeric,因为它保留对象类型)。要向矩阵添加新列,可以使用 cbind。然后你可以更新colnames。

这是一个单行:

`colnames<-`(cbind(matrix, rowSums(`class<-`(matrix[,-1], 'numeric'))),
c(colnames(matrix), 'Sums'))

# col1 col2 col3 Sums
#[1,] "Sp1" "1" "0" "0" "1"
#[2,] "Sp2" "1" "0" "0" "1"
#[3,] "Sp3" "1" "1" "0" "2"
#[4,] "Sp4" "0" "1" "1" "2"

数据

matrix = structure(c('Sp1', 'Sp2', 'Sp3', 'Sp4', 1, 1, 1, 0, 0, 0, 1, 1, 0, 
0, 0, 1), .Dim = c(4L, 4L), .Dimnames = list(NULL, c("", "col1", "col2", "col3")))

关于R,作为矩阵数据导入,计算行总和但不包括标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com