R不会在数据框中读入CSV的数值
R won't read in numeric values of CSV in data frame
我是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)
哪个returns:
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
是一个 data.frame 即 as.numeric(MSBees.spp[[2]])
就像一个向量一样工作
我是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)
哪个returns:
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
是一个 data.frame 即 as.numeric(MSBees.spp[[2]])
就像一个向量一样工作