我正在尝试为 Stack Overflow 写一个问题,我需要包含一个数据框,以便可以复制我的数据。我想获取一个 data.frame 对象并输出代码。即,我想采用这个 data.frame:
> dat
a b
1 1 4
2 2 5
3 3 6
Run Code Online (Sandbox Code Playgroud)
并将其转换为这段代码,而不必自己全部写出来:
> dat <- data.frame(a=c(1,2,3),b=c(4,5,6))
Run Code Online (Sandbox Code Playgroud)
我的 data.frame 非常大,我需要大量观察才能使我的问题有意义。因此,如果有一个包可以为我编写该代码,那就太好了。
非常感谢您的任何和所有建议。
我有一个庞大的数据框架.它看起来像这样:
> b
fips vix
1400 08005 18.58862
1401 47155 10.93712
1402 51191 10.93712
1403 47059 10.93712
1404 08005 10.93712
1405 08059 10.93712
1406 47063 10.93712
1407 37021 10.93712
1408 08031 10.93712
1409 45083 10.93712
1410 37089 10.93712
1411 37113 10.93712
1412 13207 10.93712
1413 08041 10.93712
1414 47093 21.50425
1415 08031 21.50425
1416 37009 21.50425
1417 36103 21.50425
1418 08035 21.50425
1419 08031 53.58363
1420 08035 53.58363
1421 08013 53.58363
1422 55105 21.17450
1423 08001 21.17450
1424 08031 21.17450 …Run Code Online (Sandbox Code Playgroud) 我根据三件事索引价格数据:
状态,日期和UPC(即产品代码).
我有一堆NA的价格.
我试图通过以下方式填充NA:对于具有索引(S,D,UPC)的给定缺失价格,使用相同的S和UPC填写所有数据点的平均价格.即,取平均日期.
必须有一种非常简单的方法来做到这一点,因为这非常简单.我一直在使用for循环,但我现在意识到这是非常低效的,我想使用一个函数,比如plyr或dplyr中的函数,它将尽可能少地完成所有操作.
upc=c(1153801013,1153801013,1153801013,1153801013,1153801013,1153801013,2105900750,2105900750,2105900750,2105900750,2105900750,2173300001,2173300001,2173300001,2173300001)
date=c(200601,200602,200603,200604,200601,200602,200601,200602,200603,200601,200602,200603,200604,200605,200606)
price=c(26,28,NA,NA,23,24,85,84,NA,81,78,24,19,98,NA)
state=c(1,1,1,1,2,2,1,1,2,2,2,1,1,1,1)
# This is what I have:
data <- data.frame(upc,date,state,price)
# This is what I want:
price=c(26,28,27,27,23,24,85,84,79.5,81,78,24,19,98,47)
data2 <- data.frame(upc,date,state,price)
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢.
我正在尝试使用 R 中的 Stargazer 包创建一个回归表。我有几个仅在虚拟变量上有所不同的回归。我希望它报告自变量、常数等的系数,并在回归中包含某些固定效应(即虚拟变量)时说“是”或“否”。这些是我的回归:
iv1 <- ivreg(data=merge1,log(total_units)~log(priceIndex)|log(taxIndex))
iv2 <- ivreg(data=merge1,log(total_units)~log(priceIndex)+factor(fips_state_code)|log(taxIndex)+factor(fips_state_code))
iv4 <- ivreg(data=merge1,log(total_units)~log(priceIndex)+factor(fips_state_code) +factor(year)|log(taxIndex)+factor(fips_state_code) +factor(year))
iv5 <- ivreg(data=merge1,log(total_units)~log(priceIndex)+factor(fips_state_code) +time*factor(fips_state_code)|log(taxIndex)+factor(fips_state_code) +time*factor(fips_state_code))
Run Code Online (Sandbox Code Playgroud)
(顺便说一下,数据框代码位于底部。)
如您所见,iv1 没有虚拟对象。iv2 有状态虚拟。iv4 有州和年份虚拟变量。iv5 有状态虚拟人和时间趋势虚拟人。
我希望回归只是报告是否包含每个虚拟变量,而不是报告所有这些虚拟变量的贝塔值。出于某种原因,我可以使用 Stargazer 让它适用于每个单独的回归,如下所示:
> stargazer(iv1,type="text",
+ omit = c("fips_state_code","year","time"),
+ omit.labels = c("State FE?","Year FE?","State time trend?"))
===============================================
Dependent variable:
---------------------------
log(total_units)
-----------------------------------------------
log(priceIndex) 1.146
(1.481)
Constant -0.283
(3.576)
-----------------------------------------------
State FE? No
Year FE? No
State time trend? No
-----------------------------------------------
Observations 189
R2 -1.347
Adjusted R2 -1.359
Residual Std. Error 1.297 (df …Run Code Online (Sandbox Code Playgroud) 我想在R里做一个有点复杂的任务.
我有一个data frame(为简单起见)三列.
第1列是一个字符串.
第2列是整数.
第3列是整数.
我想获取包含第1列中某个子字符串并且第2列具有精确值的所有观察结果,并将第3列替换为数字1.
也就是说,我有以下内容dataframe:
x <- data.frame(x1 = c("bob","jane","bob","bobby","bob","jane","bobby","bob","jane","bob"),
x2 = c(1,1,1,1,1,2,2,2,2,2),
x3 = c(13,22,3,34,10,23,53,42,13,35))
Run Code Online (Sandbox Code Playgroud)
并且,我想选择第1列包含bob和第2列== 1的观察结果,并将第3列更改为1,这样我最终得到:
y1 <- c("bob","jane","bob","bobby","bob","jane","bobby","bob","jane","bob")
y2 <- c(1,1,1,1,1,2,2,2,2,2)
y3 <- c(1,22,1,1,1,23,53,42,13,35)
y <- data.frame(y1,y2,y3)
Run Code Online (Sandbox Code Playgroud)
我想在一个非常非常大的数据集中做到这一点.拆分数据集并将其重新组合在一起是不可行的.我尝试过使用grep,但是当我尝试同时进行两场比赛时,它都无法正常工作.此外,我尝试了子集,但后来我必须分开dataframe并将它重新组合在一起.首先十分感谢.