小编Han*_*esZ的帖子

将NA替换为0,仅在data.table中的数字列中

我有一个data.table与不同数据类型的列.我的目标是只选择数字列,并将这些列中的NA值替换为0.我知道用零替换na值如下所示:

DT[is.na(DT)] <- 0
Run Code Online (Sandbox Code Playgroud)

要仅选择数字列,我找到了这个解决方案,它工作正常:

DT[, as.numeric(which(sapply(DT,is.numeric))), with = FALSE]
Run Code Online (Sandbox Code Playgroud)

我可以通过分配实现我想要的

DT2 <- DT[, as.numeric(which(sapply(DT,is.numeric))), with = FALSE]
Run Code Online (Sandbox Code Playgroud)

然后做:

DT2[is.na(DT2)] <- 0
Run Code Online (Sandbox Code Playgroud)

但是我当然希望通过引用修改我原来的DT.但是,以下内容:

DT[, as.numeric(which(sapply(DT,is.numeric))), with = FALSE]
                 [is.na(DT[, as.numeric(which(sapply(DT,is.numeric))), with = FALSE])]<- 0
Run Code Online (Sandbox Code Playgroud)

我明白了

" [.data.table([...] i中的错误是无效类型(矩阵)"

我错过了什么?任何帮助深表感谢!!

r numeric na data.table

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

使用theme_bw在ggplot2中绘制标题

默认情况下,标题是左对齐的,从ggplot 2.2.0开始.为了使它们再次居中,这篇文章已经解释过了:

ggplot2中的中心绘图标题

这在我的情况下也很完美,但是如果我使用theme_bw则不行.

dat <- data.frame(
  time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
  total_bill = c(14.89, 17.23)
)

ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) + 
  geom_bar(colour="black", fill="#DD8888", width=.8, stat="identity") + 
  guides(fill=FALSE) +
  xlab("Time of day") + ylab("Total bill") +
  ggtitle("Average bill for 2 people")+
  theme(plot.title = element_text(hjust = 0.5))+
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

我尝试将主题参数传递给 theme_bw()

theme_bw(plot.title = element_text(hjust = 0.5))
Run Code Online (Sandbox Code Playgroud)

但那也没有用.

有任何想法吗?非常感谢帮助

r ggplot2

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

标签 统计

r ×2

data.table ×1

ggplot2 ×1

na ×1

numeric ×1