gpt4 book ai didi

r - 在数据框底部创建一个新行并添加列总和

转载 作者:行者123 更新时间:2023-12-04 12:21:21 24 4
gpt4 key购买 nike

我正在使用以下代码从工作目录读取 csv 文件:

df <- read.csv("test1.csv", header = TRUE,skip =6, nrow =
length(count.fields("test1.csv")) - 12)

然后使用以下代码更改列名称:
colnames(df) = c("type","date","v1","v2","v3","v4","v5","v6","v7","v8","v9","v10","v11","v12","v13","v14","v15","v16","v17","v18","v19","v20","v21","v22","v23","v24","total")

我的数据集维度是 365 行 x 24 列,我正在尝试计算列 (3:27) 的总和,并在数据框底部创建一个包含总和的新行。

data.frame 看起来像这样:

enter image description here

如果我尝试使用一些示例数据进行测试,如下所示,它可以正常工作:
x <- data.frame(x1 = c(3:8, 1:2), x2 = c(4:1, 2:5),x3 = c(3:8, 1:2), x4 = c(4:1, 2:5))

x[9,(2:3)] <- apply(x, 2, sum)

但是当我尝试使用我正在使用的 csv 文件时,我使用的代码如下:
x[366,(3:27)] <- apply(df, 2, sum)

但它给出了这样的错误:“FUN(newX[, i], ...) 中的错误:参数的‘类型’(字符)无效”

谁能告诉我如何解决这个问题?

最佳答案

apply(df, 2, sum)将尝试对所有列求和,如果列 typedate属于 R 没有 sum 的类型方法,这将失败。你可以试试

df[366,(3:27)] <- colSums(df[,3:27], na.rm=TRUE)

编辑

要识别数字列:
myNumCols <- which(unlist(lapply(df, is.numeric)))

进而
df[(nrow(df) + 1), myNumCols] <- colSums(df[, myNumCols], na.rm=TRUE)

关于r - 在数据框底部创建一个新行并添加列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942487/

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