小编ejn*_*ejn的帖子

如何将R数据框导出为代码以供共享?

我正在尝试为 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 非常大,我需要大量观察才能使我的问题有意义。因此,如果有一个包可以为我编写该代码,那就太好了。

非常感谢您的任何和所有建议。

r dataframe

10
推荐指数
2
解决办法
1626
查看次数

在没有NA值的情况下在R中使用ave?

我有一个庞大的数据框架.它看起来像这样:

> 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)

r

7
推荐指数
1
解决办法
2303
查看次数

通过指数填写R中的大量NA数据?

我根据三件事索引价格数据:

状态,日期和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 missing-data na

4
推荐指数
2
解决办法
70
查看次数

在 R 中使用 Stargazer 进行多个回归中的虚拟变量

我正在尝试使用 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 stargazer dummy-variable

4
推荐指数
1
解决办法
4416
查看次数

替换R中数据框中的值

我想在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并将它重新组合在一起.首先十分感谢.

grep r dataframe

2
推荐指数
1
解决办法
2525
查看次数

标签 统计

r ×5

dataframe ×2

dummy-variable ×1

grep ×1

missing-data ×1

na ×1

stargazer ×1