[Rd] (PR#7152) Ops.ts returns non-ts object for univariate operations

jpalmucci at machineinsight.com jpalmucci at machineinsight.com
Tue Aug 3 19:48:30 CEST 2004


This is a cryptographically signed message in MIME format.

--------------ms010908060700000604050108
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Sorry.

You're right about the univariate numeric operators. My bad.

However, I was expecting !x to return a time series, just like the 
binary logical operators do.

For example:

 > b <- ts(1:10) > 5
 > b
Time Series:
Start = 1
End = 10
Frequency = 1
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
 > b & lag(b)
Time Series:
Start = 1
End = 9
Frequency = 1
[1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
 > b | lag(b)
Time Series:
Start = 1
End = 9
Frequency = 1
[1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE

However, when you use the ! operator, the result is not a ts, which 
means the following is garbage:

 > b | !lag(b)
Time Series:
Start = 1
End = 10
Frequency = 1
 [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 >

Prof Brian Ripley wrote:

>How about a statement of the problem and an example?  It is not clear to
>me that there is anything here that is not intentional, and the stated
>analysis is plain wrong: Ops.ts _is_ called for univariate "-" and _does_
>return a time series.
>
>Both +a.ts and -a.ts return a ts.  !a.ts does not, but we expect time 
>series to be numeric so that is deliberate.  (Copying attributes wily-nily 
>when changing mode is not a good idea.)
>
>On Tue, 3 Aug 2004 jpalmucci at machineinsight.com wrote:
>
>  
>
>>Full_Name: Jeff Palmucci
>>Version: 1.9.1
>>OS: XP
>>Submission from: (NULL) (129.44.190.60)
>>
>>
>>Ops.ts returns a non-time series object for univariate operations. Here is a
>>patch:
>>
>>Ops.ts <- function(e1, e2)
>>{
>>    if(missing(e2)) {
>>        ## univariate operator
>>      result <- NextMethod(.Generic)
>>      attributes(result) <- attributes(e1)
>>      result
>>    } else if(any(nchar(.Method) == 0)) {
>>        ## one operand is not a ts
>>        NextMethod(.Generic)
>>    } else {
>>        nc1 <- NCOL(e1)
>>        nc2 <- NCOL(e2)
>>        ## use ts.intersect to align e1 and e2
>>        e12 <- .cbind.ts(list(e1, e2),
>>                         c(deparse(substitute(e1))[1],
>>                           deparse(substitute(e2))[1]),
>>                         union = FALSE)
>>        e1 <- if(is.matrix(e1)) e12[, 1:nc1, drop = FALSE] else e12[, 1]
>>        e2 <- if(is.matrix(e2)) e12[, nc1 + (1:nc2), drop = FALSE]
>>        else e12[, nc1 + 1]
>>        NextMethod(.Generic)
>>    }
>>}
>>
>>______________________________________________
>>R-devel at stat.math.ethz.ch mailing list
>>https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
>>
>>
>>    
>>
>
>  
>


--------------ms010908060700000604050108
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJ+zCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8wggNYMIICwaADAgECAgMLrW8wDQYJKoZIhvcNAQEE
BQAwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0
ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA0
MDIwOTIzMTE1MloXDTA1MDIwODIzMTE1MlowgZYxHzAdBgNVBAMTFlRoYXd0ZSBGcmVlbWFp
bCBNZW1iZXIxJDAiBgkqhkiG9w0BCQEWFXBhbG11Y2NpQGFsdW0ubWl0LmVkdTEgMB4GCSqG
SIb3DQEJARYRanBhbG11Y2NpQHJjbi5jb20xKzApBgkqhkiG9w0BCQEWHGpwYWxtdWNjaUBt
YWNoaW5laW5zaWdodC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDV29qd
kRrXAYWUnO65QB5RKEOAT0cM1e25Mm3cLUmUPlXb4Q9rVMmgocNAB2gu10BE6dtnX92lzELC
zeh7WftzYJuyiL0pzH9lAnWSAKMzyHsj4Alb3mE4FMQ8GFLrZyywuewNFmQoQOiCdVns7c49
UPX+2zW1OZDnJXLl/08Kbkigc1hXi0tRkgLK/PQqmHsvmINTy6ALAlMhva3D4v62sPmwhnUa
QlWNvHPALKRhsq8vsCs+xb+RyfO4fNKh/t3MuETgZFIXsEBS9pwJNEhY2+qEvTrx/tBbbEaD
nB/+ly/4GNRfwVmzckzxwQaLPvokcaOu0nJzOduoPditUInNAgMBAAGjYzBhMFEGA1UdEQRK
MEiBFXBhbG11Y2NpQGFsdW0ubWl0LmVkdYERanBhbG11Y2NpQHJjbi5jb22BHGpwYWxtdWNj
aUBtYWNoaW5laW5zaWdodC5jb20wDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQDC
f2BTNWvk0t3Li81GnR8AbDsXZ0k0Q2wso8vE7TAP47JIYoltmKBcbZ8tvkqbVHf9l7RRl3Od
wZLSGC9AkCq4vU6FqKHGSU0cmBitGLXJu3Vgcm+TFhYRweAMbys7O9OzhUHO9/RuAiXdJg1+
wYVdc33z4B3dbLf0yVwBkY/snzCCA1gwggLBoAMCAQICAwutbzANBgkqhkiG9w0BAQQFADBi
MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEs
MCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwHhcNMDQwMjA5
MjMxMTUyWhcNMDUwMjA4MjMxMTUyWjCBljEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1l
bWJlcjEkMCIGCSqGSIb3DQEJARYVcGFsbXVjY2lAYWx1bS5taXQuZWR1MSAwHgYJKoZIhvcN
AQkBFhFqcGFsbXVjY2lAcmNuLmNvbTErMCkGCSqGSIb3DQEJARYcanBhbG11Y2NpQG1hY2hp
bmVpbnNpZ2h0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXb2p2RGtcB
hZSc7rlAHlEoQ4BPRwzV7bkybdwtSZQ+VdvhD2tUyaChw0AHaC7XQETp22df3aXMQsLN6HtZ
+3Ngm7KIvSnMf2UCdZIAozPIeyPgCVveYTgUxDwYUutnLLC57A0WZChA6IJ1Weztzj1Q9f7b
NbU5kOclcuX/TwpuSKBzWFeLS1GSAsr89CqYey+Yg1PLoAsCUyG9rcPi/raw+bCGdRpCVY28
c8AspGGyry+wKz7Fv5HJ87h80qH+3cy4ROBkUhewQFL2nAk0SFjb6oS9OvH+0FtsRoOcH/6X
L/gY1F/BWbNyTPHBBos++iRxo67ScnM526g92K1Qic0CAwEAAaNjMGEwUQYDVR0RBEowSIEV
cGFsbXVjY2lAYWx1bS5taXQuZWR1gRFqcGFsbXVjY2lAcmNuLmNvbYEcanBhbG11Y2NpQG1h
Y2hpbmVpbnNpZ2h0LmNvbTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBAUAA4GBAMJ/YFM1
a+TS3cuLzUadHwBsOxdnSTRDbCyjy8TtMA/jskhiiW2YoFxtny2+SptUd/2XtFGXc53BktIY
L0CQKri9ToWoocZJTRyYGK0Ytcm7dWByb5MWFhHB4AxvKzs707OFQc739G4CJd0mDX7BhV1z
ffPgHd1st/TJXAGRj+yfMYIDOzCCAzcCAQEwaTBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMc
VGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFs
IEZyZWVtYWlsIElzc3VpbmcgQ0ECAwutbzAJBgUrDgMCGgUAoIIBpzAYBgkqhkiG9w0BCQMx
CwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNDA4MDMxNzQ4MTRaMCMGCSqGSIb3DQEJ
BDEWBBQaAsBESsK5kCIHv8r1Fj3hxyOWtTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMH
MA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIB
KDB4BgkrBgEEAYI3EAQxazBpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29u
c3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwg
SXNzdWluZyBDQQIDC61vMHoGCyqGSIb3DQEJEAILMWugaTBiMQswCQYDVQQGEwJaQTElMCMG
A1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBl
cnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECAwutbzANBgkqhkiG9w0BAQEFAASCAQCFvZN+
CVGJqXPZNtcNx+7ha20b3JkOkttHSJGB2BQFCEKE1FyE9vIrgL/H+GHF8bNrLpaDV/JGqnMv
ki7x9HAwzPuLzgF4liW/W24fJlmcM1Pcr8sWfhC1jOgmfhX+P7ne3R0hCugTb0I/5skg/mCv
F2/s+hlANeWKtaWLEMaO+IoL5PMkFQFgGa8wH25JQg8u8WR06kNZdBUsLUTgPOVHE/k3jMf6
QGHUt4+TxKhCeHhzFficRn3OLf01sxHOc8XCizsbut6mbAp7SbMua+qKop31FhCfv3+lHTpE
DdghFJowunt/lbLam1OYprjZdZ/5SUjfnaB6tPzj3IsJSfl/AAAAAAAA
--------------ms010908060700000604050108--



More information about the R-devel mailing list