Variables 如何基于另一个不同长度的数据集在R中创建变量
我正在尝试创建一个变量Variables 如何基于另一个不同长度的数据集在R中创建变量,variables,dataset,conditional-statements,creation,Variables,Dataset,Conditional Statements,Creation,我正在尝试创建一个变量STATE,它存在于另一个与我不同长度的数据集中 两个对象都有一个状态编码变量GESTFIPS。因此,我只想让R检查GESTFIPS是否匹配,然后在我的数据集中相应地创建变量STATE 我试过: > state_1865_base$STATE[state_1865_base$GESTFIPS==urate2$GESTFIPS] < - + urate2$STATE[state_1865_base$GESTFIPS==urate2$GESTFIPS] 我的数
STATE
,它存在于另一个与我不同长度的数据集中
两个对象都有一个状态编码变量GESTFIPS
。因此,我只想让R检查GESTFIPS
是否匹配,然后在我的数据集中相应地创建变量STATE
我试过:
> state_1865_base$STATE[state_1865_base$GESTFIPS==urate2$GESTFIPS] < -
+ urate2$STATE[state_1865_base$GESTFIPS==urate2$GESTFIPS]
我的数据集看起来像(由117个变量组成的132990个obs):
这是存储状态的数据集urate
。(204 obs.共6个变量)
state_1865_base$state不幸不是。这只是stackoverflow中的编辑问题,但代码输入正确。错误仍然存在。谢谢,我错了。仔细观察,错误消息提供了信息:您在state_1865_base
中有132990个观察值,在urate2
中有204个观察值。您将收到一个错误,因为132990/204不是整数。很好,你得到了一个错误,因为如果132990/204是一个整数,你会得到一个你不想要的结果。试试类似于state\u 1865\u base$state的方法,它工作得很好。谢谢你的解释。请更新答案,以便我可以推广它。你也有Stata知识吗?谢谢!很抱歉,我对斯塔塔了解不多。(希望我知道得更多。)你知道R中plm的第一次差分回归吗?当你将赋值运算符从<-
更改为
Error in -urate2$STATE[state_1865_base$GESTFIPS == urate2$GESTFIPS] :
invalid argument to unary operator
In addition: Warning messages:
1: In state_1865_base$GESTFIPS == urate2$GESTFIPS :
longer object length is not a multiple of shorter object length
2: In state_1865_base$GESTFIPS == urate2$GESTFIPS :
longer object length is not a multiple of shorter object length
data.frame': 132990 obs. of 117 variables:
$ IDENTIFIER : chr "20030100013280" "20030100013344" "20030100013352" "20030100013848" ...
$ AGE : num 60 41 26 36 51 32 44 21 33 39 ...
$ MALE : num 1 0 0 0 1 0 0 0 0 0 ...
$ BLACK : num 1 0 0 1 0 0 0 0 0 1 ...
$ MARRIED : num 1 1 1 1 1 0 1 0 1 1 ...
$ NUM_CHILD : num 0 2 0 2 2 1 1 1 3 4 ...
$ HV_CHILD : num 0 1 0 1 1 1 1 1 1 1 ...
$ AGE_YOUNGEST : num NA 0 NA 9 14 2 9 14 3 4 ...
$ CHILD_4 : num 0 1 0 0 0 1 0 0 1 0 ...
$ CHILD_5 : num 0 1 0 0 0 1 0 0 1 1 ...
$ GRADE : num 17 13 13 12 17 16 12 13 13 13 ...
$ SPOUSE_EMP : num 0 1 0 1 0 1 1 NA 1 0 ...
$ SPOUSE_WORKHOURS : num NA 50 NA 40 NA 40 50 NA 40 NA ...
$ WORKING : num 1 1 1 0 1 1 1 1 1 1 ...
$ UNEMP : num 0 0 0 1 0 0 0 0 0 0 ...
$ RETIRED : num 0 0 0 0 0 0 0 0 0 0 ...
$ DISABLED : num 0 0 0 0 0 0 0 0 0 0 ...
$ STUDENT : num 0 0 0 0 0 0 0 0 0 0 ...
$ HOMEMAKER : num 0 0 0 0 0 0 0 0 0 0 ...
$ WORK_PART : num 1 1 1 0 0 0 0 0 0 0 ...
$ HH_INCOME_03 : num 660 200 200 NA NA ...
$ WAGE_03 : num 22 6.67 16.67 NA NA ...
$ WAGE_03_ALT : num 22 NA 12.5 NA NA NA NA 9.5 14 12 ...
$ YEAR : num 2003 2003 2003 2003 2003 ...
$ DATASET : num 2003 2003 2003 2003 2003 ...
$ INTERVIEW_DAY : num 5 6 6 4 4 4 1 2 6 4 ...
$ INTERVIEW_DATE : Date, format: "2003-01-03" "2003-01-04" "2003-01-04" "2003-01-02" ...
$ GESTFIPS : num 6 6 6 13 21 21 22 26 27 34 ...
[list output truncated]
STATE GESTFIPS NOBS TWOYEAR UNEMP URATE
AL 1 434 1 0.05392952 5.19585
AL 1 288 2 0.02666941 3.63750
AL 1 266 3 0.03848163 4.24585
AL 1 248 4 0.11545039 9.59580
AK 2 62 1 0.07917716 7.52915
AK 2 41 2 0.12782212 6.70415
AK 2 38 3 0.00000000 6.25835