小编Joe*_*ing的帖子

具有多个组的密度图

我想产生类似的东西densityplot()lattice package,采用ggplot2使用多个归集与后mice封装.这是一个可重复的例子:

require(mice)
dt <- nhanes
impute <- mice(dt, seed = 23109)
x11()
densityplot(impute)
Run Code Online (Sandbox Code Playgroud)

哪个产生:

我想在ggplot中改进的densityplot输出

我想对输出有更多的控制(我也将它用作ggplot的学习练习).所以,对于bmi变量,我试过这个:

bar <- NULL
for (i in 1:impute$m) {
    foo <- complete(impute,i)
    foo$imp <- rep(i,nrow(foo))
    foo$col <- rep("#000000",nrow(foo))
    bar <- rbind(bar,foo)
}

imp <-rep(0,nrow(impute$data))
col <- rep("#D55E00", nrow(impute$data))
bar <- rbind(bar,cbind(impute$data,imp,col))
bar$imp <- as.factor(bar$imp)

x11()
ggplot(bar, aes(x=bmi, group=imp, colour=col)) + geom_density()
+ scale_fill_manual(labels=c("Observed", "Imputed"))
Run Code Online (Sandbox Code Playgroud)

产生这个: 在此输入图像描述

所以它有几个问题:

  1. 颜色是错误的.似乎我试图控制颜色是完全错误/被忽略的
  2. 有不需要的水平和垂直线
  3. 我希望图例显示Imputed和Observed但我的代码会给出错误 invalid argument to unary operator

而且,用一行完成的工作似乎做了很多工作 …

r ggplot2 kernel-density

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

将因子的计数添加到数据帧

我有一个数据框,每行是关于瞳孔的观察.数据框中的一个向量是学校的id.我已经获得了一个新的载体,每个学校的计数如下:

tbsch <- table(dt$school)
Run Code Online (Sandbox Code Playgroud)

现在我想将相关的计数值添加到每一行dt.我已经使用for()循环遍历每一行dt并创建一个包含相关计数的新向量并最终使用cbind()它来添加它dt,但我认为这是非常低效的.有这么聪明/简单的方法吗?

r dataframe

3
推荐指数
1
解决办法
3327
查看次数

仅添加到矢量中的否定条目

我想拿一个矢量,例如:

X <-  c(1,2,3,-1,-2,-3)
Run Code Online (Sandbox Code Playgroud)

并将1(或任何其他预先确定的数字)添加到值为负的条目中,以生成

1,2,3,0,-1,-2
Run Code Online (Sandbox Code Playgroud)

有没有一个光滑的方式来做到这一点?

r

3
推荐指数
3
解决办法
102
查看次数

使用sample()的"错误的概率数"错误

我正在尝试sample(),但每当我使用自定义概率时,它会不断显示"不正确的概率"

我已经尝试过几乎所有东西,但仍然卡住了.请指导我做错了什么..

码:

sample(10:50,4,replace = T,prob = c(.1,.2,.3,.4))   
Run Code Online (Sandbox Code Playgroud)

sample.int中的错误(长度(x),大小,替换,概率):
概率数不正确

r sampling

3
推荐指数
1
解决办法
4616
查看次数

在R中编码丢失的数据

我有一个数据集,其中数据检查显示以下一些,所有这些都应该丢失

'missing'
'unknown'
'uncoded'
Run Code Online (Sandbox Code Playgroud)

我是否正确地认为我可以用"NA"替换所有出现的这些?这是首选方式吗?

var[var=='missing'] <- NA
var[var=='unknown'] <- NA
var[var=='uncoded'] <- NA
Run Code Online (Sandbox Code Playgroud)

r

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

密度错误。默认.....需要至少 2 个点才能自动选择带宽

我正在使用该mice包来获取完整的数据。我认为问题在于我没有对所有数据进行插补,因此其中一些数据具有 NA。(一些缺失数据的变量只是用来预测其他变量的缺失,所以我不想估算这些变量。

我可以用这段代码重复这个问题:

require(mice)
impute <- mice(
    nhanes, 
    imputationMethod = c(
        "",        # age
        "pmm",     # bmi
        "pmm",  # hyp
        ""         # chl
    ),
    seed = 101)
x11()
densityplot(impute)

Error in density.default(x = c(NA_real_, NA_real_, NA_real_, NA_real_,  : 
  need at least 2 points to select a bandwidth automatically
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到密度图?如果我用 for""替换或只是运行,那么它将与此示例一起使用,以生成以下内容: "pmm"chlimpute <- mice(nhanes)在此输入图像描述

但我不能用我自己的数据做到这一点,所以我正在寻找另一种方法......只是为了获得bmi和的密度图hyp,在使用上面的代码运行后mice,它不会估算 的值chl

编辑:我知道我可以使用我之前问题 的答案中的方法ggplot,但在这种情况下我真的需要使用densityplot

r

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

如何组合2个变量并忽略NA

我有一些像这样的数据

var1   var2
10     NA
101    NA
NA     86
11     NA
NA     11
NA     61
Run Code Online (Sandbox Code Playgroud)

如果一个变量是NA,那么另一个变量不是,反之亦然.

如何将它们组合成一个变量:

var3
10
101
86
11
11
61
Run Code Online (Sandbox Code Playgroud)

我可以通过循环轻松完成,但它很慢,所以我想找到一种更简单的方法.我想将0分配给NA的值然后只是将变量加在一起......有更好的方法吗?

r

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

标签 统计

r ×7

dataframe ×1

ggplot2 ×1

kernel-density ×1

sampling ×1