小编Tom*_*Tom的帖子

我可以结合使用 dplyr mutate_at 和 mutate_if 语句吗?

我有以下示例输出:

   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)

interpolation r dplyr mutate

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

使 rbindlist 跳过、忽略或更改列的类属性

我想合并一大组数据框(大约 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)

merge r class rbind rbindlist

6
推荐指数
1
解决办法
3761
查看次数

修正 lm 函数中的稳健/聚类标准错误或替换结果

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)

r lm

6
推荐指数
1
解决办法
239
查看次数

当原始组没有足够的观察结果时创建新组

我有示例数据如下:

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)

r cluster-analysis data.table

6
推荐指数
2
解决办法
380
查看次数

使用 flextable 中的 add_header_row 创建不同宽度的列

我有数据如下:

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 list flextable r-markdown

5
推荐指数
1
解决办法
1120
查看次数

尝试在 R 包 lavaan 中重新创建官方 Stata SEM 示例

我想用R 包重新创建这个官方 Stata 示例因为我想知道相同的模型是否会在两个包中产生相同的结果lavaan

我使用相同的数据(我使用 Stata 上传数据,十个保存为 a 并将.dta其上传到R),并且从图形上看,模型结构看起来相同。我的问题是估计值相差甚远。

尽管如此,我并不完全确定我在两个回归中是否做了同样的事情(也许是因为两种语法得出的假设不同)。

如果我做了什么不同的事情,有人可以向我指出吗?

Stata语法

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)

R-lavaan 语法

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)

r stata

5
推荐指数
1
解决办法
316
查看次数

为列表条目创建唯一的对象名称

我有示例数据如下:

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)

在此输入图像描述

我想重命名这些名称(例如ab),(仅)如果它们已经被使用过。例如,在末尾添加一个数字。

我在思考解决这个问题的正确方法时遇到了一些困难。

有什么建议么?

r list names duplicates

5
推荐指数
1
解决办法
157
查看次数

用序列替换向量中的 NA 值

我有数据如下:

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)

我该怎么做?

r vector na

5
推荐指数
1
解决办法
75
查看次数

创建字符串匹配向量

我有数据如下:

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)

我该怎么做?

string r match grepl

5
推荐指数
2
解决办法
121
查看次数

列是字符而不是因素有什么好的理由吗?

这个想法似乎是一个愚蠢的问题,但在与R合作几个月之后,我意识到我经常发现自己将字符串转换为因子,例如,该tabulate函数对字符串不起作用.

在这一点上,我正在考虑简单地总是将任何字符串转换为一个因子.但这引出了一个问题,是否有任何理由不(除了对字符串本身进行操作)?

string r type-conversion factors

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