我有一个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中的错误是无效类型(矩阵)"
我错过了什么?任何帮助深表感谢!!
默认情况下,标题是左对齐的,从ggplot 2.2.0开始.为了使它们再次居中,这篇文章已经解释过了:
这在我的情况下也很完美,但是如果我使用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)
但那也没有用.
有任何想法吗?非常感谢帮助