cbind 不创建数据集,而是在 R 中创建字符向量

cbind does not create dataset but character vector in R

我的目标是使用 cbind 创建一个包含 3 列的新数据框。 然而,每次我尝试它都会变成 chr,而不是 data.frame。

L_bw_visit <- c(24.68130,   175.1266,   1.47421,    2.714970,   2.080063,   42.06174,   17.29546,
                51.98034,   0.8140756,  0.7157895)
S_bw_visit <- c(29.26038,   120.9192,   5.04845,    3.742081,   3.654214,   37.53483,   21.65989,
                44.27059,   4.5231854,  3.0566597)
Species_bw <- c("Central American Spiny rat", "Common opossum","Agouti", "White-nosed coati",
                "Northern tamandua","Nine-banded armadillo", "Lowland paca", "Ocelot",
                "Red brocket deer", "Collared peccary")
paired_bw_visit<- cbind(Species_bw, L_bw_visit, S_bw_visit)

有人知道我应该如何不同地创建数据框吗?

我们需要 data.frame 而不是 cbind,因为 cbind 创建一个 matrix 并且矩阵只能有一个 class 即如果其中一个元素是字符,所有元素都改为字符 class

df1 <- data.frame(Species_bw, L_bw_visit, S_bw_visit, stringsAsFactors = FALSE)

cbind 期望所有向量都是同一类型,并在必要时将所有内容转换为字符。

改用data.frame

> data.frame(Species_bw, L_bw_visit, S_bw_visit)
                   Species_bw  L_bw_visit S_bw_visit
1  Central American Spiny rat  24.6813000  29.260380
2              Common opossum 175.1266000 120.919200
3                      Agouti   1.4742100   5.048450
4           White-nosed coati   2.7149700   3.742081
5           Northern tamandua   2.0800630   3.654214
6       Nine-banded armadillo  42.0617400  37.534830
7                Lowland paca  17.2954600  21.659890
8                      Ocelot  51.9803400  44.270590
9            Red brocket deer   0.8140756   4.523185
10           Collared peccary   0.7157895   3.056660