我正在尝试data.table使用以下结构写入光盘a :
Classes ‘data.table’ and 'data.frame': 408776 obs. of 13 variables: $ date : IDate, format: "2013-02-01" "2013-02-01" "2013-02-01" "2013-02-01" ... $ hour : int 1 1 1 1 1 1 2 2 2 2 ... $ time :Class 'ITime' int [1:408776] 16 186 218 229 463 474 16 186 208 218 ... $ bids_med : num NA NA NA 2.1 2.1 4.6 NA 7.5 7.5 7.5 ... $ bids_n : int NA NA NA 2 2 2 …
我有:
MyClass < - setRefClass("MyClass",fields = list(data ="numeric"))
让我们初始化一个对象MyClass:
OBJ < - MyClass(数据= 1:4)
...并在屏幕上打印:
OBJ
Reference class object of class "MyClass"
Field "data":
[1] 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我想改变它的打印方式,所以我写了这个方法:
print.MyClass < - function(x){cat("This is printed representation:")print(x $ data)}
现在这个工作:
打印(OBJ)
This is printed representation: [1] 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
这不是:
OBJ
有没有办法只用键入来实现我的打印方法OBJ?
我也尝试过show,或者(OBJ),但是对我没有爱.
我的数据DT具有以下结构:
structure(list(Ticker = c("MSDLWI Index", "MSDLWI Index", "MSDLWI Index", "MSDLWI Index","MSDLWI Index", "MSDLWI Index", "NDLEACWF Index", "NDLEACWF Index", "NDLEACWF Index","NDLEACWF Index", "NDLEACWF Index", "NDLEACWF Index"), Date = structure(c(-1L, 89L, 180L, 272L, 364L, 454L, 15705L, 15793L, 15884L, 15978L, 16070L, 16136L), class = c("IDate", "Date")), Value = c(NA, -0.02925, -0.180118465104301, 0.124488001005151, 0.0497217814923236,0.0966385660152425, 0.0323951658690891, 0.0842289682913797, 0.00992717655157427, 0.0631103139013451, 0.0782204344979787, 0.00855027196875335)), .Names =c("Ticker", "Date", "Value"), row.names = c(NA, -12L),class=c("data.table","data.frame"))
Run Code Online (Sandbox Code Playgroud)
头(DT,3)
Ticker Date Value
1: MSDLWI Index 1969-12-31 NA
2: MSDLWI Index 1970-03-31 -0.0292500 …Run Code Online (Sandbox Code Playgroud) 我想[.为我写一个方法ReferenceClass.到目前为止,我有这样的事情:
DT <- data.table(Index=1:5)
MySeries <- setRefClass("MySeries", fields = list(data="data.table"))
setMethod("[","MySeries",function(x, i,j,drop) {
ii <- substitute(i)
x$data <- x$data[eval(ii)]
return(x)
})
S <- MySeries(data=DT)
Run Code Online (Sandbox Code Playgroud)
...但是当我最后打电话时它会抛出一个错误S[Index>3].如何解决上述问题以获得此预期结果?
Index
4: 4
5: 5
Run Code Online (Sandbox Code Playgroud) 采购此代码:
a <- F
f1 <- function() a
f2 <- function() {
a <- T
eval(f1())
}
Run Code Online (Sandbox Code Playgroud)
并且呼叫f2()将返回FALSE.
如何修改的参数eval,这样f2()将返回TRUE?
给定(矩形)邻接矩阵m,如何在q语言中构造邻接表?
在QIdioms wiki中,我找到了k一种语言解决方案,当通过qconsole with k)command 运行时会给出'vs错误:
m:(1 0 1;1 0 1)
k) (^m)_vs &,/m
'vs
Run Code Online (Sandbox Code Playgroud)
结果应该是:
0 0 1 1
0 2 0 2
Run Code Online (Sandbox Code Playgroud)
这是我能够复制的q:
k) &,/m
0 2 3 5
q) where raze m
0 2 3 5
Run Code Online (Sandbox Code Playgroud)
k的^又名shape动词用的是失踪q,所以我只是做:
k) (^m)
000b
000b
q) 2 3#0b
000b
000b
Run Code Online (Sandbox Code Playgroud)
现在,因为:
q) parse "vs"
k) {x\:y}
Run Code Online (Sandbox Code Playgroud)
我试过两次都失败了:
q) (2 …Run Code Online (Sandbox Code Playgroud) 说我有这样的文字:
pattern = "This_is some word/expression I'd like to parse:intelligently(using special symbols-like '.')"
Run Code Online (Sandbox Code Playgroud)
挑战在于如何使用单词分隔符将其拆分为单词
c(" ","-","/","\\","_",":","(",")",".",",")
Run Code Online (Sandbox Code Playgroud)
家庭.
期望的结果:
"This" "is" "some" "word" "expression" "I'd" "like" "to" "parse" "intelligently" "using" "special" "symbols" "like"
Run Code Online (Sandbox Code Playgroud)
方法:
我可以做sapply或for循环使用:
keywords = unlist(strsplit(pattern," "))
keywords = unlist(strsplit(keywords,"-"))
Run Code Online (Sandbox Code Playgroud)
#等
题:
但是使用什么解决方案Reduce(f, x, init, accummulate=TRUE)?