我发现自己正在努力通过“素食主义者”和“ ggplot2”进行进一步的nMDS和Bioenv分析的数据导入。我有一个看起来像这样的数据框“ Taxa”(那里的值表示它是“数字”。—
头(税)
X1 Station1 Stations1_2 Stations1_3 ... Species1 123 456 789 Species2 123 456 789 Species3 123 456 789
...
在我对数据进行转置以使测站(观测)成为行
Taxa <-t(Taxa)
X_1 Species1 Species2 Species3 ...
Station1 123 456 789
Species1_2 123 456 789
Species1_3 123 456 789
...
现在,如果我检查数据是如何转置的,我会发现它已转换为“矩阵”
class(Taxa) [1]“矩阵”
现在我可以再次将矩阵更改为数据帧
Taxa.df <-data.frame(Taxa)
然后我得到的是以下内容:
head(Taxa.df)
X1 X2 X3
X_1 Species1 Species2 Species3 ...
Station1 123 456 789
Species1_2 123 456 789
Species1_3 123 456 789
...
现在我需要使第一行成为columns标题,以便我可以恢复初始结构
colnames(Taxa.df)= Taxa.df [1,]
当我这样做时,这会发生在数据框上
23 10 16 ....
X_1 Species1 Species2 Species3 ...
Station1 123 456 789
Species1_2 123 456 789
Species1_3 123 456 789
...
我无法将第一行作为标题。
如果无法执行此操作,则无法运行所需的转换,并且仍然需要运行所有统计信息分析。我整天只是尝试在Mac上的Rstudio上从xlsx导入数据并解决此问题。希望你们能帮上忙。我确实已经四处看看,并且大多数人认为找到这两个链接是有用的答案,但没有任何方法可以解决我的确切问题。
http://r.789695.n4.nabble.com/Transposing-Data-Frame-does-not-return-numeric-entries-td852889.html
Why does the transpose function change numeric to character in R?
答案 0 :(得分:0)
数据框中的第一个变量是X1
,其值是Species1
等。您应该已经读取了数据,以便第一个变量是数字(Species1
),可以通过以下方法实现row.names=1
命令中的参数read.*
。或者,您只能转置数字数据,然后用原始数据标记行和列。以下可能有效
mat <- t(Taxa[,-1]) # remove col 1
colnames(mat) <- rownames(Taxa)
mat <- as.data.frame(mat)
但是,我认为您尚未发布 R 命令的实际输出,而是手工编写了认为对结构至关重要的内容。因此,您的数据可能与显示的数据不同,并且还可能包含非数字行。只需检查sum(Taxa)
(如果您的数据为数字,则为数字),sum(Taxa[,-1])
(如果删除第一列即可,则为数字),而summary(Taxa)
(给出Mean
和{{ 1}}表示全数字的列(包括第一行)。