R 不会读取数据框中 CSV 的数值



我是R的初学者,所以请原谅我!我在R中读了一份csv,它显示了9个地点不同物种的相对丰度。我试图得到行的总和,但是R不会读取这样的数值,这将导致更多的问题,因为我试图运行一个NMDS排序分析。以下是关于我的数据的一些细节:

class(MSBees.spp)
[1] "data.frame"

str()打印的前几行:

str(MSBees.spp)  
'data.frame':   9 obs. of  29 variables:  
$ X     : chr  "Site 1" "Site 2" "Site 3" "Site 4" ...  
$ COLALG: num  0.02013 0.00997 0 0 0 ...  
$ COLCAL: num  0 0 0 0 0 0 0 0 0  
$ COLCON: num  0 0 0 0 0 0 0.00339 0 0  
$ COLFUL: num  0 0 0 0 0 0.00361 0 0 0  
$ COLOBS: num  0.00671 0.00664 0.00755 0.00292 0 ... 

到目前为止我的代码是什么样子的:

MSBees.spp <- read.csv("data_transposed.csv", header = TRUE)   
MSBees.env <- read.csv("data_transposed.env.csv", header = TRUE, row.names = 1)   
MSBees_PA.spp <- read.csv("data_transposed.csv", header = TRUE, row.names = 1)  
MSBees_abund.spp <- read.csv("data_transposed.csv", header = TRUE, row.names = 1)   
sum.of.rows <- apply(MSBees.spp, 1, sum) 

返回:
FUN(newX[, i],…)错误:参数

无效'type'(字符)我试过强制它们为数字:

as.numeric (MSBees.spp)

data.frame(lapply(MSBees.spp [2:9, 2:29], as.numeric)) 

,但没有运气能够成功运行apply()功能。
我确定我只是没有正确阅读csv或强迫他们正确,但只是不能得到它的权利。任何建议吗?请,谢谢!

逐行求和

apply(MSBees.spp, 1, sum) 

是一个问题,因为基于str的第一列是字符。

$ X     : chr  "Site 1" "Site 2" "Site 3" "Site 4" ...  

我们需要排除第一列

apply(MSBees.spp[-1], 1, sum) 

,得到和或使用向量化的rowSums

rowSums(MSBees.spp[-1], na.rm = TRUE)

同样,不需要将数据集重新转换为数字,因为数据被正确地读取为数字列类型。此外,as.numeric需要一个矢量作为输入,而MSBees.spp是一个数据帧,即as.numeric(MSBees.spp[[2]])是一个矢量

相关内容

  • 没有找到相关文章