我有以下示例输出:
country country-year year a b
1 France France2000 2000 NA NA
2 France France2001 2001 1000 1000
3 France France2002 2002 NA NA
4 France France2003 2003 1600 2200
5 France France2004 2004 NA NA
6 UK UK2000 2000 1000 1000
7 UK UK2001 2001 NA NA
8 UK UK2002 2002 1000 1000
9 UK UK2003 2003 NA NA
10 UK UK2004 2004 NA NA
11 Germany UK2000 2000 NA NA
12 Germany UK2001 2001 NA NA
13 Germany …Run Code Online (Sandbox Code Playgroud) 我想合并一大组数据框(大约 30 个),每个数据框有大约 200 个变量。这些数据集非常相似但不完全相同。
请在下面找到两个示例数据框:
library(data.table)
library(haven)
df1 <- fread(
"A B C iso year
0 B 1 NLD 2009
1 A 2 NLD 2009
0 Y 3 AUS 2011
1 Q 4 AUS 2011
0 NA 7 NLD 2008
1 0 1 NLD 2008
0 1 3 AUS 2012",
header = TRUE
)
df2 <- fread(
"A B D E iso year
0 1 1 NA ECU 2009
1 0 2 0 ECU 2009
0 0 3 0 …Run Code Online (Sandbox Code Playgroud) Cross 发布在CrossValidated 上。
前段时间,我问了这个问题,是关于在使用 IV/2SLS 时纠正标准错误,并且第一阶段有一个 tobit 分布,我从 jay.sf 得到了一个惊人的答案(底部的示例数据)。他为我提供了以下功能:
vcov2sls <- function(s1, s2, data, type=2) {
## get y names
y1.nm <- gsub(".*=\\s(.*)(?=\\s~).*", "\\1", deparse(s1$call)[1], perl=TRUE)
y2.nm <- as.character(s2$terms)[2]
## auxilliary model matrix
X <- cbind(`(Intercept)`=1, data[, y1.nm, F], model.matrix(s2)[,-(1:2)])
## get y
y <- data[, y2.nm]
## betas second stage
b <- s2$coefficients
## calculate corrected sums of squares
sse <- sum((y - b %*% t(X))^2)
rmse <- sqrt(mean(s2$residuals^2)) ## RMSE 2nd stage
V0 …Run Code Online (Sandbox Code Playgroud) 我有示例数据如下:
library(data.table)
sample <- fread("
1,0,2,NA,cat X, type 1
3,4,3,1,cat X, type 2
1,0,2,2,cat X, type 3
3,4,3,0,cat X, type 4
1,0,2,NA,cat Y, type 1
3,4,3,NA,cat Y, type 2
1,0,2,2,cat Y, type 3
3,4,3,35,cat Y, type 4
1,0,2,NA,cat X, type 1
3,4,3,1,cat X, type 2
1,0,2,2,cat X, type 3
3,4,3,NA,cat X, type 4
1,0,2,NA,cat Y, type 1
3,4,3,NA,cat Y, type 2
1,0,2,2,cat Y, type 3
3,4,3,1,cat Y, type 4
1,0,2,4,cat X, type 1
3,4,3,1,cat X, type 2
1,0,2,2,cat X, type …Run Code Online (Sandbox Code Playgroud) 我有数据如下:
dat <- structure(list(rn = c("type_A", "type_B", "type_C"
), freq = list(c(0, 0, 0, 5, 7, 16, 28), c(2, 1, 0, 5, 0, 8),
c(0, 0, 3, 5, 12, 53, 73)), colspan = list(c(`25` = 1, `100` = 2,
`250` = 1, `500` = 1, `1000` = 1, Infinity = 3, SUM = 1), c(`25` = 1,
`100` = 2, `250` = 1, `500` = 1, Infinity = 4, SUM = 1), c(`25` = 1,
`50` = 1, `100` = …Run Code Online (Sandbox Code Playgroud) 我想用R 包重新创建这个官方 Stata 示例,因为我想知道相同的模型是否会在两个包中产生相同的结果。lavaan
我使用相同的数据(我使用 Stata 上传数据,十个保存为 a 并将.dta其上传到R),并且从图形上看,模型结构看起来相同。我的问题是估计值相差甚远。
尽管如此,我并不完全确定我在两个回归中是否做了同样的事情(也许是因为两种语法得出的假设不同)。
如果我做了什么不同的事情,有人可以向我指出吗?
webuse sem_sm2, clear
sem (anomia67 pwless67 <- Alien67) (anomia71 pwless71 <- Alien71) (Alien67 <- SES) (Alien71 <- Alien67 SES) ( SES -> educ occstat66), nolog
Run Code Online (Sandbox Code Playgroud)
library(haven)
library(lavaan)
library(lavaanPlot)
model <- '
Alien67 =~ anomia67 + pwless67
Alien71 =~ anomia71 + pwless71
Alien67 ~ SES
Alien71 ~ Alien67 + SES
SES =~ educ66 + occstat66
'
model_fit …Run Code Online (Sandbox Code Playgroud) 我有示例数据如下:
listoflists=
list(
list(a = c(1,'a',3,4) , b = c(5,'b',6,7) ),
list(a = c(1,'a',2,6) , b = c(5,'b',0,8) ),
list(d = c(1,'a',2,6) , b = c(5,'b',0,8) ),
list(d = c(1,'a',2,3) , b = c(5,'b',0,8) , a = c(5,'b',0,8)),
list(d = c(1,'a',1,1))
)
Run Code Online (Sandbox Code Playgroud)
我想重命名这些名称(例如a和b),(仅)如果它们已经被使用过。例如,在末尾添加一个数字。
我在思考解决这个问题的正确方法时遇到了一些困难。
有什么建议么?
我有数据如下:
avec <- c("somevar", NA ,"anothervar", NA, "thisvar","thatvar", NA, "lastvar", NA )
Run Code Online (Sandbox Code Playgroud)
我想做的就是用连续的变量名替换 ,NA中的所有值,例如to 。我认为这会很容易,但我在堆栈上找不到任何东西。avecx001x00n
期望的输出:
avec <- c("somevar", "x001","anothervar", "x002", "thisvar","thatvar", "x003", "lastvar", "x004")
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我有数据如下:
library(data.table)
dat <- fread("id var
1 thisstring
2 otherstring
3 notthisone")
Run Code Online (Sandbox Code Playgroud)
var我正在尝试获取包含 的列中所有字符串的向量string。
如果我做:
grepl("string", dat$var)
Run Code Online (Sandbox Code Playgroud)
我得到:
[1] TRUE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
我想要得到的是:
matches <- c("thisstring", "otherstring")
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
这个想法似乎是一个愚蠢的问题,但在与R合作几个月之后,我意识到我经常发现自己将字符串转换为因子,例如,该tabulate函数对字符串不起作用.
在这一点上,我正在考虑简单地总是将任何字符串转换为一个因子.但这引出了一个问题,是否有任何理由不(除了对字符串本身进行操作)?