小编Mat*_*erg的帖子

将factor列添加到quantmod/xts

我在这做错了什么?

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对象中的列成为一个因素.我不知道它为什么不起作用.

谢谢

r xts quantmod r-factor

3
推荐指数
1
解决办法
742
查看次数

如何为因子变量的每个级别应用函数?

我有这样的功能:

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)

我已经试过了,但是这些都改变了数据集输出的结构.

r percentile r-factor

3
推荐指数
1
解决办法
4102
查看次数

变换数 - 从浮点数修剪积分

给定一列数据(类型为39600.432,39600.433等),我想删除数字的整数部分,只保留小数(将39600.432转换为432,将39600.433转换为433).我怎样才能做到这一点?

r decimal

3
推荐指数
1
解决办法
264
查看次数

使用矩阵函数的rollapply返回"不正确的维数"

我设计了自己的函数 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)

finance r rollapply

3
推荐指数
2
解决办法
1072
查看次数

将日期作为因素转换为日期不正确

我在计算从.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天但由于某种原因读错了日期.

r date r-factor

3
推荐指数
1
解决办法
4578
查看次数

编译器说缺少返回语句但我已经有3

这很奇怪.我的编译器说我缺少一个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)

java

3
推荐指数
2
解决办法
640
查看次数

在R中的summary()中访问或解析元素

我运行以下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)

statistics r elements output

3
推荐指数
1
解决办法
2801
查看次数

在R中,如果值与先前值或后续值不同,如何添加TRUE/FALSE列?

样本数据:
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)

我有很多方法可以做到这一点,但我无法弄明白.任何帮助表示赞赏!

r

3
推荐指数
1
解决办法
1691
查看次数

用另一列R替换列中的值

我有两个不同维度的表,现在我想根据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)

这该怎么做?

replace r multiple-columns

3
推荐指数
3
解决办法
8783
查看次数

格子图-通过y值的平均值添加线

我想打印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)

在此处输入图片说明

r lattice

3
推荐指数
1
解决办法
812
查看次数