楼主: snowyapple
33770 11

[问答] R入门级的几个小问题 [推广有奖]

  • 0关注
  • 0粉丝

大专生

68%

还不是VIP/贵宾

-

威望
0
论坛币
960 个
通用积分
0.0600
学术水平
2 点
热心指数
1 点
信用等级
1 点
经验
660 点
帖子
65
精华
0
在线时间
28 小时
注册时间
2004-12-13
最后登录
2015-7-12

楼主
snowyapple 发表于 2014-5-17 13:22:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data.rar (1.33 KB) 本附件包括:
  • hw1_data.csv
   
1.png
作为一个完全没有编程经验的小白,刚接触R,有如下几个小问题:
1.以上为数据的一部分,如果想截取某列,应该如何操作呢?
在我输入了 column=data[,1]之后 console上显示为:object of type 'closure' is not subsettable  请问是什么意思?
我应该如何操作?
2.如果我需要求当Temp这一列的数值大于60时Ozone这一列的平均值(去除NA),该使用什么功能呢?Subset?
具体来说该如何操作呢?
3.数据分割和选取的代码是 x[],这里我似乎不能使用类似于x[,1]来选取第一列,是因为x并不指代上面的数据么?
希望大家能帮下小弟,虽然问题比较小白。

二维码

扫码加我 拉你入群

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

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

关键词:小问题 Console closure Subset column 平均值 如何

本帖被以下文库推荐

沙发
fanyonghui 发表于 2014-5-17 13:47:55
你只是把数据读出来了, 没有把值付给一个对象. 应该是 A=read.csv("hw1_data.csv")
column=A[,1].  在mean函数中加入选项na.rm=TURE就可以把缺失值去掉了. 用命令 help(mean)看一下帮助,帮助里有详细说明.

藤椅
snowyapple 发表于 2014-5-17 13:50:18
fanyonghui 发表于 2014-5-17 13:47
你只是把数据读出来了, 没有把值付给一个对象. 应该是 A=read.csv("hw1_data.csv")
column=A[,1].  在mean ...
好的,十分感谢!

板凳
asprine 发表于 2014-5-17 13:59:21
1.以上为数据的一部分,如果想截取某列,应该如何操作呢?
在我输入了 column=data[,1]之后 console上显示为:object of type 'closure' is not subsettable  请问是什么意思?
我应该如何操作?
===============
data是R的保留字段,是一个显示数据的程序,没有另外定义前,不能用数组的操作法则。
read.csv("hw1_data.csv") 只是实现读入csv文件,并显示的功能。你需要将数据赋值给一个对象,如“Mydata”
Mydata<-read.csv("hw1_data.csv")
之后Mydata是一个R的对象(类型:数据框),输入ls()可以看到。这时才可subset:

输入 column=Mydata[,1]
===============
2.如果我需要求当Temp这一列的数值大于60时Ozone这一列的平均值(去除NA),该使用什么功能呢?Subset?
具体来说该如何操作呢?
===============
可以在mean程序中加入,na.rm=T
mean(Mydata[,1][Mydata[,4]>60],na.rm=T)

Mydata$Temp>60 返回一组T/F值,这种在[ ]中的逻辑操作,实现Subset很方便。
na.rm可以用于sum, mean以及其他一些操作。
===============

3.数据分割和选取的代码是 x[],这里我似乎不能使用类似于x[,1]来选取第一列,是因为x并不指代上面的数据么?
===============
完全可以的,x[,1] 可以选取第一列,如果知道列名如col1_name可以直接用x$col1_name.
数据框,矩阵,列表稍有不同。
这里有个入门文件:
https://bbs.pinggu.org/thread-2132491-1-1.html
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
初钰杰 + 1 + 1 + 1 精彩帖子
Nicolle + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

报纸
snowyapple 发表于 2014-5-17 14:02:14
fanyonghui 发表于 2014-5-17 13:47
你只是把数据读出来了, 没有把值付给一个对象. 应该是 A=read.csv("hw1_data.csv")
column=A[,1].  在mean ...
> A=read.csv("hw1_data.csv")
> A
    Ozone Solar.R Wind Temp Month Day
1      41     190  7.4   67     5   1
2      36     118  8.0   72     5   2
3      12     149 12.6   74     5   3
....

> column=A[,1]
> help(mean)
starting httpd help server ... done
> mean(A[,1])
[1] NA
> mean(A[,1],trim=0,na.rm=FALSE)
[1] NA

不好意思又打扰了,想问下加粗的那一步之后的操作是不是有什么遗漏呢?

地板
fanyonghui 发表于 2014-5-17 14:16:39
snowyapple 发表于 2014-5-17 14:02
> A=read.csv("hw1_data.csv")
> A
    Ozone Solar.R Wind Temp Month Day
column就是数据例的第一列了, 输入column, 可以看到其中的内容.
mean(column, na.rm=TRUE) 或者 mean(column, na.rm=T)

7
snowyapple 发表于 2014-5-17 14:19:17
asprine 发表于 2014-5-17 13:59
1.以上为数据的一部分,如果想截取某列,应该如何操作呢?
在我输入了 column=data[,1]之后 console上显示 ...
好的,好详细的资料,应该需要很多的时间来笑话了,谢谢!

8
snowyapple 发表于 2014-5-17 14:21:39
fanyonghui 发表于 2014-5-17 14:16
column就是数据例的第一列了, 输入column, 可以看到其中的内容.
mean(column, na.rm=TRUE) 或者 mean(c ...
好的,这个小问题终于解决了,谢谢!

9
fanyonghui 发表于 2014-5-17 14:21:52
在R中有两个逻辑值, TRUE  和 FALSE, 非别代表真和假. 这两个值可以分别简写为T和F.
mean(column, na.rm=T)中, 我们要对向量column求平均值, 它里面有些缺失值na, rn.rm=T表示我们要在计算之前, 先把na值去掉. 在mean中, na.rm的值默认是F. 所以不去na值时, 我们就不用理会这一项.

10
snowyapple 发表于 2014-5-17 15:10:25
fanyonghui 发表于 2014-5-17 14:21
在R中有两个逻辑值, TRUE  和 FALSE, 非别代表真和假. 这两个值可以分别简写为T和F.
mean(column, na.rm= ...
谢谢!又有一个小问题:
f <- function(x) {
        g <- function(y) {
                y + z
        }
        z <- 4
        x + g(x)
}
这个如何翻译成简单的函数语言呢,第一步应该是f=f(x),但两个大括号里的内容该如何理解呢?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 07:23