我做了一个自定义求和函数,NA除非所有函数都忽略了NA.当我在dplyr它中使用它时返回奇数结果,我不知道为什么.
require(dplyr)
dta <- data.frame(year=2007:2013, rrconf=c(79, NaN ,474,2792,1686,3313,3456), enrolled=c(NaN,NaN,458,1222,1155,1906,2184))
sum0 <- function(x, ...){
# remove NAs unless all are NA
if(is.na(mean(x, na.rm=TRUE))) return(NA)
else(sum(x, ..., na.rm=TRUE))
}
dta %>%
group_by(year) %>%
summarize(rrconf=sum0(rrconf), enrolled=sum0(enrolled))
Run Code Online (Sandbox Code Playgroud)
给我
Source: local data frame [7 x 3]
year rrconf enrolled
1 2007 79 NA
2 2008 NA NA
3 2009 474 TRUE
4 2010 2792 TRUE
5 2011 1686 TRUE
6 2012 3313 TRUE
7 2013 3456 TRUE
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它只是在一个值上求和,但在我的更大的应用程序中可能是夏天的多个值.包装我的sum0 …
新版Rstudio(0.98.932)有许多新选项,包括针织到PDF.一篇描述新版本的文章有来自Dave的评论说:
...安装rstudio 0.98.932后,在编辑.Rmd文件时,我没有获得knit-pdf或word的小下拉菜单.
我有同样的问题.发布了有用的回复:
它可能是:
a)您没有运行R 3.0(RMarkdown v2需要); 要么
b)您定义了自定义降价渲染器(markdownToHTML选项).您可以通过执行以下操作来检查:
getOption("rstudio.markdownToHTML")
这解决了Dave的问题(b),但是当我运行该命令时,我得到了NULL
> getOption("rstudio.markdownToHTML")
NULL
Run Code Online (Sandbox Code Playgroud)
我假设这意味着我没有定义自定义降价渲染器.(之前我做了一个cusomized .Rprofile,但我删除了.)我的R版本是3.1.0.
我误解了getOption命令吗?还有其他东西会绊倒我的Rstudio吗?
我爱上了包htmlTable()中的功能Gmisc。我的桌子比以前漂亮多了。在我的表格中,有一列包含相当大的条目,我很难保持它足够宽,以免数字不换行。我想nowrap按列论证或column.width论证都可以解决这个问题,但我似乎找不到。有没有办法做到这一点?或者我应该满足于“非常好”?
我订购了分类数据,我想使用颜色酿酒师.但我很难看到非常低的值.有没有办法可以削减这些较低的值或设置比例的下限?
ggplot(data.frame(x=1:6, y=10:15, w=letters[1:6]), aes(x, y, color=w)) +
geom_point()+ scale_color_brewer(type="seq", palette=1) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?到目前为止,我要么看到不是有序的定性尺度,要么看不喜欢应用于离散数据的连续尺度.如果这是唯一的路线,我知道手动秤.
当我使用绘图时,geom_area()我希望它表现得很好geom_bar(),但我对这种缺失值的行为感到有些困惑.
require(dplyr)
require(ggplot2)
set.seed(1)
test <- data.frame(x=rep(1:10,3), y=abs(rnorm(30)), z=rep(LETTERS[1:3],10)) %>% arrange(x,z)
# I also have no idea why geom_area needs the data.frame to be sorted first.
test[test$x==4,"y"] <- NA
ggplot(test, aes(x, y, fill=z)) + geom_bar(stat="identity", position="stack")
Run Code Online (Sandbox Code Playgroud)
生成此堆积条形图.

但是,如果我更改为stack_area(),它会插入缺失值.
> ggplot(test, aes(x, y, fill=z)) + geom_area(stat="identity", position="stack")
Warning message:
Removed 3 rows containing missing values (position_stack).
Run Code Online (Sandbox Code Playgroud)

如果我加入na.rm=FALSE或na.rm=TRUE没有任何区别.
ggplot(test,aes(x,y,fill = z))+ geom_area(stat ="identity",position ="stack",na.rm = TRUE)警告消息:删除了包含缺失值的3行(position_stack)

ggplot(test,aes(x,y,fill = z))+ geom_area(stat ="identity",position ="stack",na.rm = FALSE)警告消息:删除了包含缺失值的3行(position_stack). …
如果我在Rstudio中进行默认的R演示,那么一切看起来都还不错,但是情节并没有填满整个幻灯片。
在全屏或浏览器中都是一样的。
该文件说:“当一个幻灯片的唯一内容是图像,然后将图像会填满幻灯片中的所有可用空间”。它提到情节也是如此。
我在这里想念什么?我要怎么做才能使图填满整个幻灯片?
我将RStudio更新为0.99.903版本
还有其他人有这个问题吗?
> d <- data.frame(x=1:5, y=6:10)
> print(d, type="html", file="d:/delete/test5.html")
x y
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
Run Code Online (Sandbox Code Playgroud)
我的R版本是2.12.2版本,xtable版本是xtable_1.5-6.
我有一个XMLNodeSet包含带有超链接的 HTML 表格的对象。当我readHTMLTable用来转换为 data.frame 时效果很好,但超链接信息丢失了。有没有办法在包含超链接的 data.frame 中创建一个附加列?
也许一个更简单的例子是从http://stoptb.org/countries/tbteam/reg_wpro.asp的表中提取超链接。
table <- readHTMLTable("http://stoptb.org/countries/tbteam/reg_wpro.asp")
df <- data.frame(table[[8]])
Run Code Online (Sandbox Code Playgroud) .rmd使用脚本窗口左下角的小下拉菜单,Rstudio中的文档很容易导航到各种代码块.
在常规.r文件中,函数列出了一个有用的"f"图标,函数名称和注释的块也列出了一个有用的"#"图标,但旁边有(无标题).
我需要在评论中包含哪些内容,以便将"(无标题)"替换为标签?
例:
#----------------------------------------------------
# FirstLabel - This is the first chunk of code I want to navigate to.
#----------------------------------------------------
Run Code Online (Sandbox Code Playgroud) 是否可以使用hwrite(或任何其他HTML创建包)跨越多个列的标题?我可以把它伪装成嵌套在一个更大的表中的数据帧,但它不是真正的跨度(它看起来很难看).
我没有在示例中看到这个版本,但也许在其他地方存在.
谢谢,汤姆
我知道答案必须在那里,但我无法弄清楚如何说出问题.
我想计算data.frame中值之间的差异.
由此:
f <- data.frame(year=c(2004, 2005, 2006, 2007), value=c(8565, 8745, 8985, 8412))
year value
1 2004 8565
2 2005 8745
3 2006 8985
4 2007 8412
Run Code Online (Sandbox Code Playgroud)
对此:
year value diff
1 2004 8565 NA
2 2005 8745 180
3 2006 8985 240
4 2007 8412 -573
Run Code Online (Sandbox Code Playgroud)
(即当年的价值减去上一年的价值)
但我不知道如何在另一行创建的行中得到结果.有帮助吗?
谢谢,汤姆
你能告诉我为什么吗
paste(paste(c("first", "second"), collapse=", "), "third", collapse=" and ")
Run Code Online (Sandbox Code Playgroud)
给我
"first, second third"
Run Code Online (Sandbox Code Playgroud)
代替
"first, second and third"
Run Code Online (Sandbox Code Playgroud)
?获得第二个输出的正确语法是什么?