我试图按资产类别计算资产加权回报.对于我的生活,我无法弄清楚如何使用aggregate命令来做到这一点.
我的数据框看起来像这样
dat <- data.frame(company, fundname, assetclass, return, assets)
Run Code Online (Sandbox Code Playgroud)
我正在尝试做一些事情(不要复制这个,这是错的):
aggregate(dat, list(dat$assetclass), weighted.mean, w=(dat$return, dat$assets))
Run Code Online (Sandbox Code Playgroud) 我有两个data.frames.例如,让我们说它们看起来像这样:
df1 <- data.frame(x=rep(letters[1:26], 16))
df2 <- data.frame(y=letters[1:4])
Run Code Online (Sandbox Code Playgroud)
我想做的是子集'df1'包含第一列值与'df2'第一列中的任何值匹配的行.
现在,我试过了:
subset(df1, df1$x == df2$y)
Run Code Online (Sandbox Code Playgroud)
但这告诉我,我需要同样大小的data.frames.思考?
在stats包中,有一个非常有用的函数叫做reorder().在gdata包中,还有一个名为reorder()的函数.
如何从stats强制reorder(),而不是在加载gdata包时被覆盖?或者,有没有办法引用您想要使用的重新排序()?
看起来网站阻止了Curl的直接访问.
library(XML)
library(RCurl)
theurl <- "http://www.london2012.com/medals/medal-count/"
page <- getURL(theurl)
page # fail
[1] "<HTML><HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD><BODY>\n<H1>Access Denied</H1>\n \nYou don't have permission to access \"http://www.london2012.com/medals/medal-count/\" on this server.<P>\nReference #18.358a503f.1343590091.c056ae2\n</BODY>\n</HTML>\n"
Run Code Online (Sandbox Code Playgroud)
让我们试着看看我们是否可以直接从表中访问它.
page <- readHTMLTable(theurl)
Run Code Online (Sandbox Code Playgroud)
那里没有运气 Error in htmlParse(doc) : error in creating parser for http://www.london2012.com/medals/medal-count/
你怎么把这张桌子放进R?
更新:响应评论和玩弄,伪造用户代理字符串工作以获取内容.但readHTMLtable返回错误.
page <- getURLContent(theurl, useragent="Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2")
Run Code Online (Sandbox Code Playgroud) 我想创建一个geom_path(),其箭头指向路径中的下一个位置.
我可以毫无问题地获得绘图的路径,例如:
df <- (x=1:12, y=20:31, z=1:12)
p <- ggplot(df, aes(x=x, y=y))
p + geom_point() + geom_path()
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是绘制从路径中的一个元素指向下一个元素的箭头.
如果您可以告诉我如何平滑从路径中的一个元素到下一个元素的线条,则需要额外的标记.
我希望能够看到当我使用str()时使用的函数,因为我想为了我自己的目的而修改它作为另一个函数.
当我打字时str()
,我得到以下内容:
function (object, ...)
UseMethod("str")
<environment: namespace:utils>
Run Code Online (Sandbox Code Playgroud)
所以我试过,getAnywhere(str)
:
2 differing objects matching ‘str’ were found
in the following places
.GlobalEnv
package:utils
namespace:utils
Use [] to view one of them
Run Code Online (Sandbox Code Playgroud)
但是文档中没有关于使用语法的内容 []
所以我试过,getAnywhere(str)[1]
:
function (object, ...)
UseMethod("str")
<environment: namespace:utils>
Run Code Online (Sandbox Code Playgroud)
叹.好吧,那怎么样showMethods(str)
:
Function "str":
<not a generic function>
Run Code Online (Sandbox Code Playgroud)
那么,我如何看待输出的构造str()
?或者我可以吗?
有没有办法从R内部将LaTeX表直接打印到图像文件(包含在另一个文档/网页中).基本上,我想将LaTeX代码提供给将其作为图像保存到工作目录的函数.
管梦想?
我为使用相对路径的包编写了一些函数,例如:
"./data/foobar.rds"
Run Code Online (Sandbox Code Playgroud)
这是一个示例函数:
foo <- function(x) {
x <- readRDS("./data/bar.rds")
return(x)
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我要在包的开发路径中工作,这就像我期望的那样工作.但是当我加载包时,此路径使用当前工作目录而不是包的相对路径.
如何设置它以使包中的函数路径保持在包相对路径中?
有人可以向我解释这种行为吗?
a <- b <- c <- new.env()
a$this <- 1
b$this
# 1
c$this
# 1
Run Code Online (Sandbox Code Playgroud)
我原本以为a/b/c会是不同的环境,就像以同样方式创建的变量一样?
但是,在全局环境中会显示三个环境,但是对一个环境的任何操作都会被推送到所有环境中.
通过magrittr
的 pipeline ( %>%
) 这段代码可以工作;
library(dplyr)
set.seed(1)
a <- sample(LETTERS[1:30],5)
a %>% gsub('A','-',x = .)
Run Code Online (Sandbox Code Playgroud)
但在 R 的本机或“内置”管道中,我无法使用点进行管道传输,这个不起作用;
set.seed(1)
a <- sample(LETTERS[1:30],5)
a |> gsub('A','-',x = .)
Run Code Online (Sandbox Code Playgroud)
我们如何通过原生 R 管道传递非第一个参数?