楼主: lxy_yf
1821 10

[问答] R菜鸟请教大神 [推广有奖]

  • 0关注
  • 2粉丝

硕士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
560 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
26345 点
帖子
104
精华
0
在线时间
161 小时
注册时间
2016-5-19
最后登录
2021-4-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
    本人是刚学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的菜鸟初学者,实在不明白为什么,有哪位路过的大神能不吝指教一下,感激不尽。
   
   
   
   


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:parkland matrix Hedger Garden 用excel 编程入门 excel 栖息地 电子 经典

沙发
robbieyeah 发表于 2016-5-19 23:57:37 |只看作者 |坛友微信交流群
read.csv的帮助程序里说明:A data frame (data.frame) containing a representation of the data in the file.
这个函数就是返回data frame的。同时你没有设置stringsAsFactors变量为false,所以数值类型都变成了factor。

再用as.matrix的时候,如果有任何factor数据会自动把所有数据变为字符型。
已有 1 人评分论坛币 收起 理由
admin_kefu + 25 热心帮助其他会员

总评分: 论坛币 + 25   查看全部评分

使用道具

藤椅
cmwei333 发表于 2016-5-20 03:07:46 |只看作者 |坛友微信交流群
其实,data frame 和 matrix 实际上用法差不多,运算起来不会大相径庭
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

板凳
dcwang1233 发表于 2016-5-20 06:20:49 |只看作者 |坛友微信交流群
先查察看class(bird$Garden)
我的R沒看到這現象,自動成為numeric,包括整數。
不然就用data.matrix(frame, rownames.force = NA)
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

报纸
lxy_yf 发表于 2016-5-20 14:28:59 |只看作者 |坛友微信交流群
robbieyeah 发表于 2016-5-19 23:57
read.csv的帮助程序里说明:A data frame (data.frame) containing a representation of the data in the f ...
非常感谢,我再试试。

使用道具

地板
lxy_yf 发表于 2016-5-20 14:31:21 |只看作者 |坛友微信交流群
cmwei333 发表于 2016-5-20 03:07
其实,data frame 和 matrix 实际上用法差不多,运算起来不会大相径庭
非常感谢!

使用道具

7
lxy_yf 发表于 2016-5-20 14:33:15 |只看作者 |坛友微信交流群
dcwang1233 发表于 2016-5-20 06:20
先查察看class(bird$Garden)
我的R沒看到這現象,自動成為numeric,包括整數。
不然就用data.matrix(fram ...
非常感谢,我试试看。

使用道具

8
lxy_yf 发表于 2016-5-20 16:51:36 来自手机 |只看作者 |坛友微信交流群
dcwang1233 发表于 2016-5-20 06:20
先查察看class(bird$Garden)
我的R沒看到這現象,自動成為numeric,包括整數。
不然就用data.matrix(fram ...
你好,我有一个新的问题,能帮我解决一下吗?就是如何在往R中导入数据时,不要前面的序号,直接是数据框或矩阵。

使用道具

9
bbslover 发表于 2016-5-20 22:23:21 |只看作者 |坛友微信交流群
lxy_yf 发表于 2016-5-20 16:51
你好,我有一个新的问题,能帮我解决一下吗?就是如何在往R中导入数据时,不要前面的序号,直接是数据框或 ...
如果不需要哪一列,再删除就行。  比如删除第一列:B <- A[, -1]

使用道具

10
lxy_yf 发表于 2016-5-21 08:06:24 来自手机 |只看作者 |坛友微信交流群
非常感谢,我再试试。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-9-21 11:27