小编Vin*_*ntH的帖子

更改stringsAsFactors data.frame的设置

我有一个函数,我在其中定义一个data.frame我使用循环来填充数据.在某些时候,我收到警告消息:

警告消息:1:In [<-.factor(*tmp*,iseq,value ="CHANGE"):生成的因子级别无效

因此,当我定义我的data.frame时,我想将选项设置stringsAsFactorsFALSE但我不明白该怎么做.

我试过了:

DataFrame = data.frame(stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

并且:

options(stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

设置stringsAsFactors选项的正确方法是什么?

default r options dataframe r-factor

27
推荐指数
1
解决办法
6万
查看次数

如何更改警告设置?

我正在尝试调试一个函数.我想在它们出现时显示警告,但我不明白如何更改警告设置.

warnings r options

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

R:将单引号添加到字符串

我尝试将单引号添加到字符串但不知道如何操作.例如,我想用'ABC'取代ABC.

我玩糊,猫,打印,但看不到怎么做.

有解决方案吗

谢谢,文森特

string r concatenation

4
推荐指数
2
解决办法
2万
查看次数

错误:order.by需要适当的基于时间的对象PerformanceAnalytics

我是R的新手,更喜欢ts对象.我尝试在数据帧(df)的向量上使用PerformanceAnalytics包.

我有以下数据框:

    row.names   Date    PnL
1   22  1992-01-02  -1.751133e-02
2   23  1992-01-03  -1.586737e-02
3   24  1992-01-06  -2.898982e-02
Run Code Online (Sandbox Code Playgroud)

我试过了:

  TestS=SharpeRatio.annualized(df[,"PnL"],Rf=0,scale=252)
  TestS=SharpeRatio.annualized(as.ts(df[,"PnL"]),Rf=0,scale=252)
Run Code Online (Sandbox Code Playgroud)

它分别返回对象中的错误,并且:

checkData中的错误(R,method ="xts"):数据无法转换为时间序列.如果您尝试从具有一列的数据对象传入名称,则应使用"data [rows,columns,drop = FALSE]"形式.Rownames应具有标准日期格式,例如'1985-03-15'

dput(df[,"PnL")=0.00994504296273811, 0.00156467225423175, 0.00976137048829638, etc.
dputdf[,"Date")=8036, 8037, 8040, 8041,etc.
Run Code Online (Sandbox Code Playgroud)

该软件包的帮助说该函数适用于vector.我没有任何NA,因此我不明白为什么它不起作用.

r time-series xts

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

R:列表1中列表1的元素数量/出现次数

我想比较两个列表(两行数据帧)并计算两个列表之间的差异.

例如:

list1=a,b,c,a
list2=a,a,d,d
Run Code Online (Sandbox Code Playgroud)

列表1的两个元素在列表2中

我能够用循环和求和来做到这一点,但效率非常低.在R中有任何功能吗?

我检查了setdiff和比较包,但没有发现任何有用的东西.

谢谢你的想法,

文森特

我的功能如下:

        NRebalancing=function(NamePresent)
        {
          Nbexchange=NamePresent[,2]
          Nbexchange=NamePresent[1,2]=0

          for (i in 2:nrow(NamePresent))
          {
            print(i)
            compteur=0
            NameNeeded=NamePresent[i,]
            NameNeeded=unique(NameNeeded)
            NameNeeded=na.omit(NameNeeded)
            for(j in 2:length(NameNeeded))
              #j=1 correspond a une date
            {
              compteur = compteur+(abs(sum(NamePresent[i,]==as.character(NameNeeded[j]))-sum(NamePresent[i-1,]==as.character(NameNeeded[j]))))
            }
          Nbexchange[i]=compteur  
          }

          return(Nbexchange)
        }
Run Code Online (Sandbox Code Playgroud)

compare r list

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