[Rd] invalid operands of types ‘SEXPREC*’ and ‘R_len_t’ to binary ‘operator/’ with Rcpp.
Dear R-Developers, I just started learning how to use Rcpp. Earlier while using it, I encountered an error as shown below: file74d8254b96d4.cpp: In function Rcpp::NumericVector foo(Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::Function, Rcpp::Function): file74d8254b96d4.cpp:10: error: invalid operands of types SEXPREC* and R_len_t to binary operator/ make: *** [file74d8254b96d4.o] Error 1 Below is a mock function that can reproduce this error. I wonder if anyone can tell me what is the problem here. Thank you in advance!! foo<-cppFunction(' NumericVector foo(NumericVector q, NumericVector shape1, NumericVector shape2, Function pbeta, Function sequence){ NumericVector output(q.size()); output=pbeta(sequence(q.size())/q.size(), shape1, shape2); return output; } ') Best, Xiao [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] Segmentation fault on Python+Rpy2+R
Hi, everyone I met a trouble, not only about R, but Python+RPy2+R When I run "from rpy2 import robjects" or other packages/codes, I receive "Segmentation Fault" inevitably like this: linux-yhwx:/ # python Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import rpy2 >>> rpy2.__version__ '2.2.2' >>> import rpy2.tests Segmentation fault linux-yhwx:/ # My OS on cluster is Suse family (not ubuntu or other linuxes), R is 2.15.2-devel Python 2.7.2 and RPy 2.2.2 as described above. Where can I find how this happens or deal with this segment fault? -- View this message in context: http://r.789695.n4.nabble.com/Segmentation-fault-on-Python-Rpy2-R-tp4666997.html Sent from the R devel mailing list archive at Nabble.com. __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] invalid operands of types ‘SEXPREC*’ and ‘R_len_t’ to binary ‘operator/’ with Rcpp.
Please use the appropriate mailing list (Rcpp-devel) for Rcpp questions. Romain Le 14 mai 2013 à 06:42, Xiao He a écrit : > Dear R-Developers, > > I just started learning how to use Rcpp. Earlier while using it, I > encountered an error as shown below: > > file74d8254b96d4.cpp: In function ‘Rcpp::NumericVector > foo(Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::NumericVector, > Rcpp::Function, Rcpp::Function)’: > file74d8254b96d4.cpp:10: error: invalid operands of types ‘SEXPREC*’ and > ‘R_len_t’ to binary ‘operator/’ > make: *** [file74d8254b96d4.o] Error 1 > > Below is a mock function that can reproduce this error. I wonder if anyone > can tell me what is the problem here. Thank you in advance!! > > foo<-cppFunction(' > NumericVector foo(NumericVector q, NumericVector shape1, NumericVector > shape2, Function pbeta, Function sequence){ > NumericVector output(q.size()); > output=pbeta(sequence(q.size())/q.size(), shape1, shape2); >return output; > } > ') > > > Best, > Xiao > >[[alternative HTML version deleted]] > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] invalid operands of types ‘SEXPREC*’ an d ‘R_len_t’ to binary ‘operator/’ wit h Rcpp.
On 13 May 2013 at 21:42, Xiao He wrote: | Dear R-Developers, | | I just started learning how to use Rcpp. Earlier while using it, I | encountered an error as shown below: | | file74d8254b96d4.cpp: In function �Rcpp::NumericVector | foo(Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::NumericVector, | Rcpp::Function, Rcpp::Function)�: | file74d8254b96d4.cpp:10: error: invalid operands of types �SEXPREC*� and | �R_len_t� to binary �operator/� | make: *** [file74d8254b96d4.o] Error 1 | | Below is a mock function that can reproduce this error. I wonder if anyone | can tell me what is the problem here. Thank you in advance!! | | foo<-cppFunction(' |NumericVector foo(NumericVector q, NumericVector shape1, NumericVector | shape2, Function pbeta, Function sequence){ | NumericVector output(q.size()); | output=pbeta(sequence(q.size())/q.size(), shape1, shape2); | return output; | } | ') Really briefly: 1) Wrong mailing list. Rcpp question are to be sent to rcpp-devel 2) Possible error in your function setup. Why do you supply pbeta? What is sequence? 3) Error in how you call pbeta. The first argument is a vector, the other two are scalars. 4) Compiler error is pretty clear for once: it does not understand the division, and you only have one so look there. Here is a minimal working example: library(Rcpp) foo<-cppFunction('NumericVector foo(NumericVector q, double shape1, double shape2){ return pbeta(q, shape1, shape2); }') for which I get R> source('/tmp/foo.R') R> foo(seq(0.1, 0.5, by=0.1), 2, 3) [1] 0.0523 0.1808 0.3483 0.5248 0.6875 Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] call R function from C code
If you are fine with another package doing the legwork for you, calling an R function from C++ is very easy: R> library(Rcpp) R> cppFunction('NumericVector fun(NumericMatrix X, NumericVector y, Function s) { return s(X, y); }') R> set.seed(42); solve(matrix(rnorm(9),3,3), rep(1,3)) [1] -0.778649 1.553893 0.717221 R> set.seed(42); fun(matrix(rnorm(9),3,3), rep(1,3), solve) [1] -0.778649 1.553893 0.717221 R> So the C++ function 'fun' we created using Rcpp, and which just calls the supplied function on the first two arguments, returns us the same answer from C++ as we get when we call solve(X, y) in R. Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] invalid operands of types ‘SEXPREC*’ an d ‘R_len_t’ to binary ‘operator/’ wit h Rcpp.
Thank you! I will send my reply to Rcpp-devel from now on Re: my question -. Since I thought cppFunction() allows vectorized operations, I thought any R functions I call from R would also allow it. pbeta() within R can be specified as pbeta(runif(10), 1, 2) where the first argument is a vector. the function sequence() basically takes an integer, and produce a vector of consecutive integers starting from 1 to the provided value. Best, Xiao On Tue, May 14, 2013 at 6:39 AM, Dirk Eddelbuettel wrote: > > On 13 May 2013 at 21:42, Xiao He wrote: > | Dear R-Developers, > | > | I just started learning how to use Rcpp. Earlier while using it, I > | encountered an error as shown below: > | > | file74d8254b96d4.cpp: In function Rcpp::NumericVector > | foo(Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::NumericVector, > | Rcpp::Function, Rcpp::Function): > | file74d8254b96d4.cpp:10: error: invalid operands of types SEXPREC* and > | R_len_t to binary operator/ > | make: *** [file74d8254b96d4.o] Error 1 > | > | Below is a mock function that can reproduce this error. I wonder if > anyone > | can tell me what is the problem here. Thank you in advance!! > | > | foo<-cppFunction(' > |NumericVector foo(NumericVector q, NumericVector shape1, NumericVector > | shape2, Function pbeta, Function sequence){ > | NumericVector output(q.size()); > | output=pbeta(sequence(q.size())/q.size(), shape1, shape2); > | return output; > | } > | ') > > Really briefly: > > 1) Wrong mailing list. Rcpp question are to be sent to rcpp-devel > > 2) Possible error in your function setup. Why do you supply pbeta? > What is sequence? > > 3) Error in how you call pbeta. The first argument is a vector, the > other > two are scalars. > > 4) Compiler error is pretty clear for once: it does not understand the > division, and you only have one so look there. > > > Here is a minimal working example: > > library(Rcpp) > foo<-cppFunction('NumericVector foo(NumericVector q, double shape1, double > shape2){ > return pbeta(q, shape1, shape2); > >}') > > for which I get > > R> source('/tmp/foo.R') > R> foo(seq(0.1, 0.5, by=0.1), 2, 3) > [1] 0.0523 0.1808 0.3483 0.5248 0.6875 > > Dirk > > -- > Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com > [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] invalid operands of types ‘SEXPREC*’ an d ‘R_len_t’ to binary ‘operator/’ wit h Rcpp.
On 14 May 2013 at 06:47, Xiao He wrote: | Thank you! | | I will send my reply to Rcpp-devel from now on Re: my question -. Since I | thought cppFunction() allows vectorized operations, I thought any R functions I | call from R would also allow it. pbeta() within R can be specified as pbeta | (runif(10), 1, 2) where the first argument is a vector. And of course so does the pbeta() we offer in Rcpp, and so does the example I posted below. | the function sequence() | basically takes an integer, and produce a vector of consecutive integers | starting from 1 to the provided value. Ie the same as typing 1:N ? Dirk | | Best, | Xiao | | On Tue, May 14, 2013 at 6:39 AM, Dirk Eddelbuettel wrote: | | | On 13 May 2013 at 21:42, Xiao He wrote: | | Dear R-Developers, | | | | I just started learning how to use Rcpp. Earlier while using it, I | | encountered an error as shown below: | | | | file74d8254b96d4.cpp: In function ‘Rcpp::NumericVector | | foo(Rcpp::NumericVector, Rcpp::NumericVector, Rcpp::NumericVector, | | Rcpp::Function, Rcpp::Function)’: | | file74d8254b96d4.cpp:10: error: invalid operands of types ‘SEXPREC*’ | and | | ‘R_len_t’ to binary ‘operator/’ | | make: *** [file74d8254b96d4.o] Error 1 | | | | Below is a mock function that can reproduce this error. I wonder if | anyone | | can tell me what is the problem here. Thank you in advance!! | | | | foo<-cppFunction(' | | NumericVector foo(NumericVector q, NumericVector shape1, | NumericVector | | shape2, Function pbeta, Function sequence){ | | NumericVector output(q.size()); | | output=pbeta(sequence(q.size())/q.size(), shape1, shape2); | | return output; | | } | | ') | | Really briefly: | | 1) Wrong mailing list. Rcpp question are to be sent to rcpp-devel | | 2) Possible error in your function setup. Why do you supply pbeta? | What is sequence? | | 3) Error in how you call pbeta. The first argument is a vector, the | other | two are scalars. | | 4) Compiler error is pretty clear for once: it does not understand the | division, and you only have one so look there. | | | Here is a minimal working example: | | library(Rcpp) | foo<-cppFunction('NumericVector foo(NumericVector q, double shape1, double | shape2){ | return pbeta(q, shape1, shape2); | | | } | ') | | for which I get | | R> source('/tmp/foo.R') | R> foo(seq(0.1, 0.5, by=0.1), 2, 3) | [1] 0.0523 0.1808 0.3483 0.5248 0.6875 | | Dirk | | -- | Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com | | -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] Documentation request Re: [R] recode categorial vars into binary data
> David Winsemius > on Mon, 13 May 2013 10:21:33 -0700 writes: > On May 7, 2013, at 10:54 AM, Chris Stubben wrote: >> >>> First off, stop using cbind() when it is not needed. You will not see the reason when the columns are all numeric but you will start experiencing pain and puzzlement when the arguments are of mixed classes. The data.frame function will do what you want. (Where do people pick up this practice anyway?) I had asked the same (in the past)... and you guess a probable answer below. >> Maybe from help( data.frame)? >> >> It's in most of the examples and is not needed ... >> >> L3 <- LETTERS[1:3] >> (d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3, 10, replace=TRUE))) >> ## The same with automatic column names: >> data.frame(cbind( 1, 1:10), sample(L3, 10, replace=TRUE)) >> >> Chris > There are many instances of new users posting questions to R-help where they use the form: > dfrm <- data.frame(cbind(1:10, letter[1:10]) ) > … and predictably get a character mode for all their columns. I was pointed to the help page for `data.frame` as one possible source of this confusion. I would like to request that the examples be changed to: > L3 <- LETTERS[1:3] > (d <- data.frame(x = 1, y = 1:10, fac = sample(L3, 10, replace = TRUE))) > ## The same with automatic column names: > data.frame( 1, 1:10, sample(L3, 10, replace = TRUE)) Very good suggestion notably if your guess was right ! Unfortunately, this cannot make it into 3.0.1 (the examples are *run* etc... to much for "deep code freeze" we are in now). But I plan to backport the change to "3.0.1 patched" once that is released... all in the big hope that people will *STOP* using data.frame( cbind( ... ) ) in a habitual way. Martin > -- > David Winsemius > Alameda, CA, USA PS: Are there other suggestions to help people *stop* using ifelse(A, B, C) in those many places where they should use if(A) B else C ? __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] problem in add1's F statistic when data contains NAs?
Shouldn't the F statistic (and p value) for the x2 term in the following calls to anova() and add1() be the same? I think anova() gets it right and add1() does not. > d <- data.frame(y=1:10, x1=log(1:10), x2=replace(1/(1:10), 2:3, NA)) > anova(lm(y ~ x1 + x2, data=d)) Analysis of Variance Table Response: y DfSum Sq Mean SqF value Pr(>F) x1 1 52.905613 52.905613 1108.61455 4.5937e-07 *** x2 1 6.355775 6.355775 133.18256 8.5678e-05 *** Residuals 5 0.238611 0.047722 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > add1(lm(y ~ x1, data=d), y ~ x1 + x2, test="F") Single term additions Model: y ~ x1 Df Sum of Sq RSS AIC F value Pr(>F) 6.5943869 2.4542182 x2 1 6.3557755 0.2386114 -22.0988844 186.45559 2.6604e-06 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Warning message: In add1.lm(lm(y ~ x1, data = d), y ~ x1 + x2, test = "F") : using the 8/10 rows from a combined fit It looks like add1 is using 7 instead of 5 for the denominator degrees of freedom, 7 being the value in the original fit, before the 2 rows containing NA's in x2 were omitted. > (6.355775/1) / (0.238611/5) [1] 133.1827745 > (6.355775/1) / (0.238611/7) [1] 186.4558843 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] Documentation request Re: [R] recode categorial vars into binary data
Hi Martin, On 05/14/2013 08:44 AM, Martin Maechler wrote: [...] PS: Are there other suggestions to help people *stop* using ifelse(A, B, C) in those many places where they should use if(A) B else C ? Or to help people stop using if (... & ...) if (... | ...) in those many places where they should use if (... && ...) if (... || ...) Cheers, H. __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel -- Hervé Pagès Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpa...@fhcrc.org Phone: (206) 667-5791 Fax:(206) 667-1319 __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel