我在这做错了什么?
library(quantmod)
getSymbols('^GSPC')
b <- tail(GSPC, 20) #for brevity
is.factor(factor(Cl(b), labels=c('A')))
> TRUE
b$f <- factor(Cl(b), labels=c('A'))
is.factor(b$f)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
我希望我的xts/quantmod对象中的列成为一个因素.我不知道它为什么不起作用.
谢谢
我有这样的功能:
remove_outliers<-function(x){
qnt<- quantile(x,probs=0.99)
y<- x
y[x>qnt]<- NA
y}
Run Code Online (Sandbox Code Playgroud)
目的是删除位于数据顶部1%的异常值(用NA替换它们的值).如何在因子变量的各个级别上应用此功能?
例如,
A组和B组的原始数据集:
group share
A 100
A 50
A 30
A 10
... ...
B 100
B 90
B 80
B 60
... ...
Run Code Online (Sandbox Code Playgroud)
应该像这样结束:
group share
A NA
A 50
A 30
A 10
... ...
B NA
B 90
B 80
B 60
... ...
Run Code Online (Sandbox Code Playgroud)
我已经试过了,但是这些都改变了数据集输出的结构.
给定一列数据(类型为39600.432,39600.433等),我想删除数字的整数部分,只保留小数(将39600.432转换为432,将39600.433转换为433).我怎样才能做到这一点?
我设计了自己的函数 SharpeRatio(data)
其中数据是nx2矩阵.
该函数适用于给定的矩阵数据,但是当我尝试使用时,rollapply(dat, 20, SharpeRatio)我得到以下错误:dat [,1]中的错误:维数不正确
以下是函数定义:
SharpeRatio <- function(dat){
Returns = dat[,1]
RiskFree = dat[,2]
ER = (Returns - RiskFree)/100
Volatility = sd(Returns/100)
return((exp(mean(log(1+ER))) - 1)/Volatility)
}
Run Code Online (Sandbox Code Playgroud) 我在计算从.csv文件导入的日期时遇到问题.我想要做的是在DateClosed因子中取这个日期,并在日期字段(a)中生成一个日期.示例如果a = 203我希望日期等于DateClosed-203.但是,我遇到下面列出的代码有问题.
DateClose是一个因素.
> head(DateClosed)
[1] 7/30/2007 12/12/2007 5/8/2009 6/24/2009 6/24/2009 2/29/2008
165 Levels: 1/12/2010 1/15/2011 1/15/2013 1/17/2009 1/18/2008 1/19/2012 1/2/2013 1/21/2013 1/22/2010 1/24/2013 1/26/2014 ... 9/7/2010
> head(as.Date(DateClosed,format="%m/%d/%y"))
[1] "2020-07-30" "2020-12-12" "2020-05-08" "2020-06-24" "2020-06-24" "2020-02-29"
head(as.Date(DateClosed,format="%m/%d/%y"))-203
[1] "2020-01-09" "2020-05-23" "2019-10-18" "2019-12-04" "2019-12-04" "2019-08-10"
Run Code Online (Sandbox Code Playgroud)
它正确地减去了203天但由于某种原因读错了日期.
这很奇怪.我的编译器说我缺少一个return语句,但我已经有了3.这是我的代码:
public int tortoiseMoves()
{
int i = tGen();
if (i >= 1 && i <= 5)
{
int fastplod = 3;
return fastplod;
}
if (i >= 6 && i <= 8)
{
int slowplod = 1;
return slowplod;
}
if (i >= 9 && i <= 10)
{
int slip = -6;
return slip;
}
}
Run Code Online (Sandbox Code Playgroud) 我运行以下R命令进行Dunnett测试并获得摘要.如何访问下面的线性假设的每一行,这是摘要输出的一部分?基本上我不知道摘要的结构.我尝试使用names()但似乎没有工作,因为我没有看到任何命名属性给出.
library("multcomp")
Group <- factor(c("A","A","B","B","B","C","C","C","D","D","D","E","E","F","F","F"))
Value <- c(5,5.09901951359278,4.69041575982343,4.58257569495584,4.79583152331272,5,5.09901951359278,4.24264068711928,5.09901951359278,5.19615242270663,4.58257569495584,6.16441400296898,6.85565460040104,7.68114574786861,7.07106781186548,6.48074069840786)
data <- data.frame(Group, Value)
fit <- aov(Value ~ Group, data)
set.seed(20140123)
Dunnet <- glht(fit, linfct=mcp(Group="Dunnett"))
summary(Dunnet)
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Dunnett Contrasts
Fit: aov(formula = Value ~ Group, data = data)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
B - A == 0 -0.35990 0.37009 -0.972 0.76536
C - A == 0 -0.26896 0.37009 -0.727 0.90012
D - A == 0 -0.09026 0.37009 -0.244 0.99895 …Run Code Online (Sandbox Code Playgroud) 样本数据:
df <- data.frame(time=c(1,2,3,4,5,6, 7), status=c("good", "good", "good", "bad", "good", "good", "good"))
输出:
time status
1 1 good
2 2 good
3 3 good
4 4 bad
5 5 good
6 6 good
7 7 good
Run Code Online (Sandbox Code Playgroud)
我想添加一个新的statuschangeIF 列status与上面或下面的行不同.输出看起来像这样:
time status statuschange
1 1 good NA
2 2 good TRUE
3 3 good FALSE
4 4 bad FALSE
5 5 good FALSE
6 6 good TRUE
7 7 good NA
Run Code Online (Sandbox Code Playgroud)
我有很多方法可以做到这一点,但我无法弄明白.任何帮助表示赞赏!
我有两个不同维度的表,现在我想根据userids用datB $ swl2中的值替换值datA $ swl1.
数据
id swl1
1 0.8
2 0.7
3 0.4
4 0.7
5 0.0
Run Code Online (Sandbox Code Playgroud)
DATB
id swl2
1 0.8
3 0.6
5 0.7
Run Code Online (Sandbox Code Playgroud)
产量
datA(此处swl1被swl2中的新值替换,但并非所有id都有新值,对于那些没有的值,保留原始值)
id swl1
1 0.8
2 0.7
3 0.6
4 0.7
5 0.7
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
我想打印lattice::xyplot包含分组的点和线的,但是y对于x每个组中的许多单个值,我都有多个值。我希望打印一条分段的线,以便对于每个x值,它都通过y每个组中相关值的平均值。
这是一个例子:
使用此数据:
set.seed(1)
d <- data.frame(x=sample(6, 20, replace=TRUE), y=rnorm(20), g=factor(sample(2, 20, replace=TRUE)))
# Shift one group
d$y[d$g==2] = d$y[d$g==2] + 5
Run Code Online (Sandbox Code Playgroud)
我转移了一组,所以线条在视觉上更具吸引力。
散点图如下所示:
xyplot(y ~ x, data=d, groups=g)
Run Code Online (Sandbox Code Playgroud)
仅仅添加行真是一团糟:
xyplot(y ~ x, data=d, groups=g, type=c('p','l'))
Run Code Online (Sandbox Code Playgroud)
如果对x值进行排序会更好一些,但仍然不是我想要的:
xyplot(y ~ x, data=d[order(d$x),], groups=g, type=c('p','l'))
Run Code Online (Sandbox Code Playgroud)