转载请注明出处,来自:R语言中文网:http://www.r-china.net
来自本论坛R语言学习QQ群74076289的讨论问题:
童鞋A: 11:22:01
请教一个问题啊,想创建新变量GDP,但要求在Country=1, Year=2000情况下为值,比如,10000,命令应该怎么写啊
童鞋B: 11:32:36
你应该有一个数据集合吧。比如data,想生成一个新变量GDP.
GDP<-rep(0,nrow(data));
GDP[data[,"Country"]==1&data[,"Year"]==2000]==10000
童鞋A: 11:37:06
我先试试行不行吧,刚运行了一个,出现了一堆FALSE
童鞋A: 11:37:24
估计是浅一些数据都不是符合条件数据缘故
童鞋A: 11:39:22
不对啊
童鞋A: 11:39:27
我summary了一下
童鞋A: 11:39:35
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 0 0 0 0 0
童鞋A: 11:39:42
summary(GDP)
童鞋B: 11:42:06
你是想生成一个新变量。还是想从原数据集中提取一个这个变量。只是设定几个条件而已
童鞋A: 11:42:22
生成新变量
童鞋A: 11:43:22
有国家15个,年数两年
童鞋A: 11:44:27
数据是基于个人的,但我想生成一个country level的变量
童鞋B: 11:45:19
GDP<-rep(0,nrow(data));
GDP[data[,"Country"]==1&data[,"Year"]==2000]=10000
童鞋B: 11:45:28
你再试一下
童鞋A: 11:45:40
这个是一行么?
童鞋B: 11:46:09
两行
童鞋A: 11:46:14
我刚才是按两行输入的,分号前后各一行
童鞋B: 11:46:16
你直接拷贝粘贴就行。
童鞋B: 11:46:21
恩。
童鞋A: 11:46:42
然后结果是
童鞋A: 11:46:44
> summary(GDP)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0 0 0 0 0 0
> table(GDP)
GDP
0
160846
童鞋B: 11:47:01
你原始数据啥样的
童鞋A: 11:47:15
就是survey
童鞋A: 11:47:26
每个人对各种问题的回答
童鞋B: 11:47:28
你data是啥
童鞋B: 11:47:37
你粘一个例子。
童鞋B: 11:48:10
我这个例子中class(data)是 data.frame
童鞋B: 11:48:15
你用对了嘛
童鞋A: 11:48:19
童鞋A: 11:49:09
> is.data.frame(data2000)
[1] TRUE
童鞋A: 11:49:31
这是我写的命令
童鞋A: 11:49:35
GDP=rep(0,nrow(data2000))
GDP[data2000[,"nation2"]==1&data2000[,"year"]==2000]==1326334899576.19
童鞋B: 11:49:37
恩
童鞋A: 11:50:02
就是你那个,然后我把colnames改成我这个数据的名字了
童鞋B: 11:50:03
class(data2000[,"nation2"])
童鞋B: 11:50:07
结果是什么
童鞋A: 11:50:20
integer
童鞋B: 11:50:37
class(data2000[,"year"])
童鞋B: 11:50:41
这个呢
童鞋A: 11:51:13
也是integer
童鞋A: 11:51:19
你那个命令输完了是这样的
墨魂(654608871) 11:51:22
你直接read.csv or read.xlsx
墨魂(654608871) 11:51:35
读进去就是data frame
童鞋A: 11:51:45
童鞋A: 11:51:56
所以我改成了replace又试了一下
童鞋A: 11:51:59
可结果一样
童鞋B: 11:52:10
GDP=rep(0,nrow(data2000))
GDP[data2000[,"nation2"]==1&data2000[,"year"]==2000]=1326334899576.19
童鞋B: 11:52:16
你刚才写错了。
童鞋B: 11:52:22
你用这个。
童鞋B: 11:52:36
我后来给你改的。不是两个==,是一个=
童鞋B: 11:52:46
童鞋A: 11:53:02
是,我也注意到了
童鞋B: 11:53:16
你再试试
童鞋A: 11:53:21
行了!
童鞋A: 11:53:25
太感谢了!!
童鞋A: 11:53:29
感激涕零!
童鞋A: 11:53:35
而且又学了一种新方法
童鞋A: 11:53:40
不用老replace了
童鞋B: 11:53:42
这个是新生成的变量。你可以加到原始数据中。
童鞋A: 11:53:47
谢谢!
童鞋A: 11:54:13
而replace只是生成一个变量是吧?这俩还是不一样的
童鞋A: 11:54:25
生成一个vector我是说
童鞋B: 11:54:46
行了就好。主要看你要啥结果。有不同的操作方式
|