我是R的新手,面临着一些问题。
我有xts数据,我想根据这些值创建一个新列。 例如:
>head(x1)
> Values
>"2014-09-01 00:00:01" -0.1
>"2014-09-01 00:00:02" 0.05
>"2014-09-01 00:00:03" 0.01
>"2014-09-01 00:00:04" -0.03
>"2014-09-01 00:00:05" 0.01
>"2014-09-01 00:00:06" -0.001
我想添加一个新列:
> Values Signs
>"2014-09-01 00:00:01" -0.1 Negetive
>"2014-09-01 00:00:02" 0.05 Positive
>"2014-09-01 00:00:03" 0.01 Positive
>"2014-09-01 00:00:04" -0.03 Negative
>"2014-09-01 00:00:05" 0.01 Positive
>"2014-09-01 00:00:06"-0.001 Negative
我一直在尝试某些方式,比如
>x2 <- apply(x1, MARGIN = 1,
+if(x1 > 0){
+ paste("Positive")
+ }else{
+ if(x1<0){
+ paste("Negative")
+ }
+ }
+ )
它完全不起作用。 我知道这是一个非常基本的问题但对我来说很难。 谢谢你的帮助。
当我输入dput(head(sep4diff1))(sep4diff1是我的数据对象的真实姓名)时,我得到了:
x1 <- structure(c(NA, -0.00200000000000955, -0.000999999999990564,
0, 0, 0, NA, 0.000999999999990564, -0.00199999999999534, 0, 0,
0), class = c("xts", "zoo"), .indexCLASS = c("POSIXct", "POSIXt"
), .indexTZ = "", tclass = c("POSIXct", "POSIXt"), tzone = "", index
=structure(c(1409756400.675,
1409756401.938, 1409756402.414, 1409756403.173, 1409756404.173,
1409756405.173), tzone = "", tclass = c("POSIXct", "POSIXt")), .Dim = c(6L,
2L), .Dimnames = list(NULL, c("Bid", "Ask")))
在前面的示例中,只有一列,但实际上我有两列。 价值可能为零,所以我必须创建一个列为&#34;正&#34;,&#34;否定&#34;或&#34;零&#34;。 提前谢谢。