我正在尝试编写R代码来从一堆旧电子表格中读取数据.数据的确切位置因工作表而异:唯一的常数是第一列是日期,第二列是"每月返回"作为标题.在此示例中,数据从单元格B5开始:
如何使用R 自动搜索Excel单元格以查找"每月返回"字符串?
目前,我能想到的最好的想法是从单元格A1开始上传R中的所有内容,并在生成的(巨大的)矩阵中找出混乱.我希望有一个更优雅的解决方案
我创建了一个简单的数据框(dput如下):
date ticker value
------------------------------
2016-06-30 A2M.ASX 0.0686
2016-07-29 A2M.ASX -0.0134
2016-08-31 A2M.ASX -0.0650
2016-09-30 A2M.ASX 0.0145
2016-10-31 A2M.ASX 0.3600
2016-11-30 A2M.ASX -0.1429
Run Code Online (Sandbox Code Playgroud)
我想将value列的名称更改为我的metric变量名称中的任何内容,我想以某种dplyr方式执行此操作.
我的样本数据:
df = structure(list(date = c("2016-06-30", "2016-07-29", "2016-08-31", "2016-09-30", "2016-10-31", "2016-11-30"), ticker = c("A2M.ASX", "A2M.ASX", "A2M.ASX", "A2M.ASX", "A2M.ASX", "A2M.ASX"), value = c(0.0686, -0.0134, -0.065, 0.0145, 0.36, -0.1429)), .Names = c("date", "ticker", "value"), row.names = c(NA, 6L), class = "data.frame")
metric = "next_return"
Run Code Online (Sandbox Code Playgroud)
我知道如何在一行中做到这一点:
colnames(df)[3] = metric
Run Code Online (Sandbox Code Playgroud)
但我想以某种tidyverse …
我在Portfolio Analytics包中加入自定义预期回报时遇到问题.通常预期回报是一些专业期望/观点,或与基本指标分开计算.Portfolio Analytics允许创建自定义时刻函数来计算过去回报的时刻,但我不明白如何将已经计算的回报合并到优化问题中.感谢任何帮助,这里是一个小示例数据集:
#Download package and sample returns
library(PortfolioAnalytics)
library(PerformanceAnalytics)
data(edhec)
returns <- tail(edhec[,1:4], 10)
#Example expected return xts that I'm usually working with. Calculated separately.
N <- 10
M <- 4
views <- as.xts(data.frame(matrix(rnorm(N*M,mean=0,sd=0.05), N, M)), order.by = index(returns))
colnames(views) <- colnames(returns)
Run Code Online (Sandbox Code Playgroud)
让我们创建一些基本的投资组合.
pf <- portfolio.spec(assets = colnames(returns))
pf <- add.constraint(portfolio = pf, type = "full_investment")
pf <- add.constraint(portfolio = pf, type = "long_only")
pf <- add.objective(portfolio = pf, type = "return", name = "mean")
pf <- add.objective(portfolio = …Run Code Online (Sandbox Code Playgroud) 我写了这个我一直用的功能:
# Give the previous day, or Friday if the previous day is Saturday or Sunday.
previous_business_date_if_weekend = function(my_date) {
if (length(my_date) == 1) {
if (weekdays(my_date) == "Sunday") { my_date = lubridate::as_date(my_date) - 2 }
if (weekdays(my_date) == "Saturday") { my_date = lubridate::as_date(my_date) - 1 }
return(lubridate::as_date(my_date))
} else if (length(my_date) > 1) {
my_date = lubridate::as_date(sapply(my_date, previous_business_date_if_weekend))
return(my_date)
}
}
Run Code Online (Sandbox Code Playgroud)
当我将其应用于具有数千行的数据帧的日期列时出现问题.这太慢了. 有什么想法为什么?
我想在R ts()对象中找到最小值和最大值的日期.我尝试了which.min和which.max函数,但它们只返回"行号".我想输出实际的日期.谢谢.
data <- ts(round(rnorm(60), 2), frequency = 12, end = c(2016, 12))
data
which.min(data)
which.max(data)
Run Code Online (Sandbox Code Playgroud) 我试图gls在我的面板数据上使用广义最小二乘模型(在R中)来处理自相关问题.我不希望任何变量有任何滞后.
我正在尝试使用Durbin-Watson测试(dwtest在R中)来检查我的广义最小二乘模型(gls)中的自相关问题.但是,我发现它dwtest不适用于gls功能,而它适用于其他功能,如lm.
有没有办法从我的gls模型中检查自相关问题?
我想将工作簿x中的一组命名范围中的数据导出到工作簿y中的另一组范围.要导出和输出的范围的名称在表"Table_Export"中指定.问题是我不想在这些相应的范围所在的工作表中加注,看到我不知道实际的工作表名称.但由于范围是全局的,因此应该可以在vba中引用它们而不引用相应的工作表?
相关代码可以在下面找到,其中if语句中的两个星号行中的任何一行都是我想要完成的.
Dim x As Workbook, y As Workbook
Set x = ThisWorkbook
Set y = Workbooks.Open(Range("Export_to").Value)
Dim export_control As ListObject
Set export_control = x.Sheets("Control").ListObjects("Table_Export")
Dim lr As Excel.ListRow
For Each lr In export_control.ListRows
If lr.Range(1).Value <> 0 Then
*'y.Names(lr.Range(2).Value).RefersToRange.Value = x.Names(lr.Range(1).Value).RefersToRange.Value*
*'y.Range(lr(Range(2).Value).Value = x.Range(lr(Range(1).Value).Value*
End If
Next
Run Code Online (Sandbox Code Playgroud) 使用此示例数据:
library(tidyverse)
set.seed(123)
df <- data_frame(X1 = rep(LETTERS[1:4], 6),
X2 = sort(rep(1:6, 4)),
ref = sample(1:50, 24),
sampl1 = sample(1:50, 24),
var2 = sample(1:50, 24),
meas3 = sample(1:50, 24))
Run Code Online (Sandbox Code Playgroud)
我可以summarise_at()用来计算列子集中的值的数量:
df %>% summarise_at(vars(contains("2")), funs(sd_expr = n() ))
Run Code Online (Sandbox Code Playgroud)
这不是很令人兴奋,因为它与行数相同.但是,它在具有嵌套列的表中很有用,每个单元格包含一个数据帧,每个单元格中的行数不同.
例如,
df %>%
mutate_at(vars(-one_of(c("X1", "X2", "ref"))), funs(first = . - ref)) %>%
mutate_at(vars(contains("first")), funs(second = . *2 )) %>%
nest(-X1) %>%
mutate(mean = map(data,
~ summarise_at(.x, vars(contains("second")),
funs(mean_second = mean(.) ))),
n = map(data,
~ summarise_at(.x, vars(contains("second")),
funs(n_second = n() …Run Code Online (Sandbox Code Playgroud) 有两个接口,第一个是ICat,第二个是IMammal。
IMammal延伸ICat。中的Cat属性IMammal是否可以访问ICat接口的所有属性?
export interface ICat {
Cateye: string[];
Color: string;
Name: string;
}
export interface IMammal extends ICat {
Description: string;
HasImage: boolean;
CatGroup: string[];
**Cat: ICat[]**;
}
Run Code Online (Sandbox Code Playgroud)
基本上,我如何在Typescript中实现多个接口继承?
r ×7
dplyr ×2
excel ×2
tidyverse ×2
angular ×1
asp.net ×1
azure ×1
c# ×1
correlation ×1
date ×1
lubridate ×1
optimization ×1
panel-data ×1
portfolio ×1
publish ×1
purrr ×1
range ×1
regression ×1
tidyr ×1
time-series ×1
typescript ×1
vba ×1