本人是刚学R的菜鸟,有个问题哪位大神能给指教一下。
《R编程入门经典》中有一个例题,说的是关于鸟类和栖息地之间的二维数据,用excel电子表格保存成csv格式,然后用read.csv读入R中,读入之后是这样的:
> bird
X Garden Hedgerow Parkland Pasture Woodland
1 Blackbird 47 10 40 2 2
2 Chaffinch 19 3 5 0 2
3 Great Tit 50 0 10 7 0
4 House Sparrow 46 16 8 4 0
5 Robin 9 3 0 0 2
6 Song Thrush 4 0 6 0 0
用class()命令来检查对象类型是这样的:
> class(bird)
[1] "data.frame"
显示是数据框,而书上却说是这样的:
> class(bird)
[1] "matrix"
显示为矩阵。
第一个问题:我不明白这是为什么?有什么方法能使数据输入后直接是矩阵呢?
然后,既然书上说是数据框,我就用as.matrix()命令把它转换成矩阵,转换后是这样的:
as.matrix(bird)
X Garden Hedgerow Parkland Pasture Woodland
[1,] "Blackbird" "47" "10" "40" "2" "2"
[2,] "Chaffinch" "19" " 3" " 5" "0" "2"
[3,] "Great Tit" "50" " 0" "10" "7" "0"
[4,] "House Sparrow" "46" "16" " 8" "4" "0"
[5,] "Robin" " 9" " 3" " 0" "0" "2"
[6,] "Song Thrush" " 4" " 0" " 6" "0" "0"
转换后成了矩阵,可是数字全带上了引号,变成了字符。同样的例子,可该书上转换后并没有带引号,还是数字形式。
第二个问题:这又是为什么?能不能转换后不带引号?
本人R的菜鸟初学者,实在不明白为什么,有哪位路过的大神能不吝指教一下,感激不尽。