²Ô¾®¿Õ·¬ºÅѸÀ×Á´½Ó

    1. <form id=VHjPPVrdo><nobr id=VHjPPVrdo></nobr></form>
      <address id=VHjPPVrdo><nobr id=VHjPPVrdo><nobr id=VHjPPVrdo></nobr></nobr></address>

      *** Voting for the MeFiCoFo Board has begun! ***
      Oct. Site Rebuild Update | 10/5 Board Update | Sept. Site Update

      The R Project for Statistical Computing
      February 15, 2010 4:07 PM   Subscribe

      R is quickly becoming the programming language for data analysis and statistics. R (an implementation of S) is free, open-source, and has hundreds of packages available. You can use it on the command-line, through a GUI, or in your favorite text editor. Use it with Python, Perl, or Java. Sweave R code into LaTeX documents for reproducible research.

      Good places to get started: official manuals and FAQ, Quick-R, R help, and the R Wiki. (R translations exist for MATLAB users and Octave users.) Handy resources: RSeek and the R reference card (PDF). See also intros to R for psychology and must-have R packages for social scientists. There's even some books on R.

      Check out some neat graphs (with R source code). Popular graphics packages for R include lattice, ggplot2, and RGL or rggobi for more complex data visualization.

      Melt down and recast your data with the reshape package.

      Many R GUIs are available, including R Commander, JGR, Rattle for data mining, and even an R GUI Generator. Or use R through text editors: Emacs Speaks Statistics, a vim plugin, SciViews-K for Komodo, and Tinn-R. The Omega Project has some other interesting R interfaces.

      Happy data crunching!
      posted by parudox (112 comments total) 226 users marked this as a favorite
       
      I love R.

      That is all.
      posted by Jimbob at 4:10 PM on February 15, 2010 [1 favorite]


      All the best pirate statisticians swear by it
      posted by nervousfritz at 4:14 PM on February 15, 2010 [18 favorites]


      R.

      Hard to Google. Effective as any statistician could want.

      Although, I must say, awfully late to the anti-aliasing game, when it comes to graphs.
      posted by tmcw at 4:16 PM on February 15, 2010


      Although, I must say, awfully late to the anti-aliasing game, when it comes to graphs.

      This is true for the default graphics device - just output to PDF and it looks beautiful.
      posted by Jimbob at 4:18 PM on February 15, 2010


      My R experience:

      Compile, compile, compile.

      Troubleshoot, troubleshoot, troubleshoot.

      ...6hours later...

      It's alive!

      Now what the hell do I do.

      Reboot in XP

      Load Minitab.

      ...10 minutes later...

      I'm done!
      posted by 517 at 4:29 PM on February 15, 2010


      In my haste, I almost posted aspersions that R has dynamic scope, which I find terrifying.

      I went and found a pdf file which states differently. That said, it does have some interesting scoping rules (walk up enclosing scopes, then walk down a search list of all loaded libraries, in which user load order matters).

      So, I guess I find the scoping rules of R terrifying, just for a different reason than the one I thought motivated my horror.

      That said, some of my friends love the hell out of this creation.
      posted by enkiwa at 4:32 PM on February 15, 2010


      Yay, R! So cool to see this on the blue, and thanks for including so many helpful links!

      IMO, it can be a very steep learning curve, even for programmers, due to its truly funky syntax (<- for an assignment operator, WTF?) and documentation written mostly by and for academic statisticians. But the more time you spend with and, the more you discover -- and the amount of stuff there is to discover in the world of R is truly astonishing.
      posted by treepour at 4:34 PM on February 15, 2010


      R is the one thing I use for 6+ hours every day. Nice solid post.

      Also, ggplot2 and I have known each other (almost biblically) for several months now. We plan to name our first son Akaike.
      posted by special-k at 4:35 PM on February 15, 2010 [5 favorites]


      Guess I'm not gonna get laid for a while after that last comment.
      posted by special-k at 4:37 PM on February 15, 2010 [12 favorites]


      s/with and,/with it/
      posted by treepour at 4:37 PM on February 15, 2010


      R is awesome. So is Sweave. I did almost my entire PhD thesis, and my last major peer-reviewed manuscript in Sweave. Need to change the dataset used for the entire paper? No problem, just change one line, type make and the whole document is remade, all the figures are adjusted, all the numbers referred to in the text are corrected, and you're done.

      Searching for R with Google is hard. Use Rseek, linked above. Yes, the learning curve is steep. But once you've learned a few things you can do some very complicated stuff very quickly.
      posted by grouse at 4:45 PM on February 15, 2010 [2 favorites]


      Does anyone in the industry still use S-PLUS or has R eaten their lunch?
      posted by Rhomboid at 4:46 PM on February 15, 2010


      So, I guess I find the scoping rules of R terrifying, just for a different reason than the one I thought motivated my horror.

      I definitely feel that it's probably not a programming language for people who are already seriously into programming languages, because a lot of stuff it does is kind of awkward and weird. Although I do like that you can define default values in function definitions ie.
      myfunction <>

      And the <>real programming languages have fits.

      But it seems to work. The fact that I can, in about four lines of code, load in data, run a GAM model on it and plot the results, makes me very happy.

      posted by Jimbob at 4:46 PM on February 15, 2010


      517: "Compile, compile, compile.

      Troubleshoot, troubleshoot, troubleshoot.

      ...6hours later...
      "

      Installing programs with *nix is vastly easier than with WIndows if you use a package manager.
      posted by idiopath at 4:47 PM on February 15, 2010


      Damn my trying to be tricky with my tags. What I tried to say was it's very nice that you can do:

      myfunction <>real programmers have a fit. Anyway. Back to work.
      posted by Jimbob at 4:49 PM on February 15, 2010


      I'll shut the hell up now. My inability to use HTML entities makes anything I have to say ignorant and worthless.
      posted by Jimbob at 4:50 PM on February 15, 2010 [3 favorites]


      Heh, from the first article:
      ¡°I think it addresses a niche market for high-end data analysts that want free, readily available code," said Anne H. Milley, director of technology product marketing at SAS. She adds, ¡°We have customers who build engines for aircraft. I am happy they are not using freeware when I get on a jet.¡±
      That's the sound a marketroid makes just before getting hit by a locomotive.
      posted by Malor at 4:50 PM on February 15, 2010 [17 favorites]


      it's probably not a programming language for people who are already seriously into programming languages, because a lot of stuff it does is kind of awkward and weird

      Actually, I worry about it becoming the first programming language for some people because it will rot their brain in a big way. Still love it, but it's worrisome.
      posted by grouse at 4:52 PM on February 15, 2010


      This post is a great way to out all teh R geeks.
      posted by special-k at 4:54 PM on February 15, 2010 [1 favorite]


      Also, ladies, if it helps my case any I am using R at a brewery down the road from my office. They have a recession monday all day happy hour.
      posted by special-k at 4:57 PM on February 15, 2010 [4 favorites]


      I'm surprised Anne H. Milley is still sprouting that shit after this fiasco, where bugs in S were found to have generated bogus results in a number of air pollution studies.
      posted by Jimbob at 4:58 PM on February 15, 2010 [1 favorite]


      "Installing programs with *nix is vastly easier than with WIndows if you use a package manager."

      I was. Go try to get a version of R set-up with a few different GUIs to choose from, and do it in the same amount of time it takes to use a windows installer. You won't. Especially when R, and most of the R GUIs weren't in the normal repositories at the time I tried to set it up.

      The point of my post is that R, like most things open source, is not friendly to the new user.
      posted by 517 at 4:58 PM on February 15, 2010


      I should've pointed out that R is a functional programming language - which may contribute to difficulties for those not used to functional programming..
      posted by parudox at 5:07 PM on February 15, 2010


      517: on Debian, and presumably Ubuntu, it looks like installing the metapackage "r-recommended" should install an X-Windows version with a whole bunch of stuff.

      In the package manager, if you search for 'statistical', that will give you a very long list of prepackaged R libraries and utilities. Searching for R ends up being a bit over-broad, but 'statistical' seems to be a good keyword.

      I can see these things available in both 'testing' and 'stable', so it's been in Debian, at least, for several years.

      I don't know a damn thing about R or what you actually needed, but there's a ton of stuff all ready to go, once you find the right keyword.
      posted by Malor at 5:07 PM on February 15, 2010


      Let's say I am good at math but bad at computers and I want to run R on my (OSX 10.6) Mac. I don't know what python, perl, or java are. I'm comfortable with working from a command line (e.g. this is how I use Maple and MAGMA.) What do I do?
      posted by escabeche at 5:10 PM on February 15, 2010


      517: "Go try to get a version of R set-up with a few different GUIs to choose from, and do it in the same amount of time it takes to use a windows installer. "

      I just did it, since I don't have it installed on this computer. The download took much longer than the install did, closely followed by the time needed for the fonts to install. And the install wasn't even interactive, all I had to do was wait for it to finish. This is on debian stable.
      posted by idiopath at 5:11 PM on February 15, 2010


      TheWhiteHat <- ("Loves him some R")
      posted by The White Hat at 5:11 PM on February 15, 2010 [1 favorite]


      I use it, but I've yet to warm to it. The main problem is that it just takes forever, in two senses.

      First, when writing my own stuff or using something moderately arcane, I tend to need to google something every few hours; googling R is a real pain, not just because "R" as a search term is useless (RSeek helps a bit with that), and not just because it has always been useless and therefore help forums have not grown up around similar seekers, but because what help forums there are tend to be dominated by low-social-skill statisticians whose objective is often to "help" with the minimum possible advice. When compounded with man files that are usually the bare minimum with at most a very few largely unexplained examples, figuring out what in the end turns out to be an easily-solved stumbling block can be an hour-long exercise in frustration. For whatever reason, other statistical software (like Stata, which I also use) is not just easier to search for help for, but also tends to have more actually helpful help when you do find it.

      The other component of "takes forever" is that, as a high-level interpreted language, R is dog slow for complicated calculations. If you're trying to writing a complex but low-level program, my experience suggests that R can often be 100 to 1000 times slower than C. Again, it's well worth it for high-level or prepackaged stuff, but it can be a bit frustrating to realize that your cool statistical package written in some other language needs to be rewritten in R for widespread adoption, and as a result will probably run 100 times more slowly.
      posted by chortly at 5:11 PM on February 15, 2010 [2 favorites]


      I tend to think of software like a bicycle.

      Sure, you can go get a nice-looking bike down at the local shop with a big cushy seat, and which is adjusted so that you can put your heels flat on the ground without getting off of the saddle every time you reach a stoplight... And then you can be confounded by the terrible ergonomics of those choices within a couple weeks, and go back to driving the car to Wal-Mart every time you need a quart of milk, thus avoiding the travails of painful knees and chafed thighs.

      Or you can go with the road bike (perhaps with panniers), with its relatively hard, narrow seat and long reach to the pedals and the ground. In the short term, it takes a hell of a lot more getting used to starting and stopping and steering, but eventually it's faster and far more user-friendly than the cruiser. Suddenly you're using the bike for everything, and never bother to renew your driver's license...
      posted by kaibutsu at 5:12 PM on February 15, 2010 [6 favorites]


      escabeche: "What do I do?"

      probably darwinports is going to be the easiest route.
      posted by idiopath at 5:12 PM on February 15, 2010 [1 favorite]


      I'm working my way through the new O'Reilly book R in a Nutshell right now! I have a very thin programing background (some IDL and even less Python), and things seem to be clicking.
      posted by nowoutside at 5:14 PM on February 15, 2010


      (I don't make any claims about R, though, as I don't use it, though I've been half-heartedly meaning to for a while... I just don't deal with statistics very much at all, unless you mean like permutation statistics, in which case I can tell you very many things that have nothing to do with statistics as it's usually understood. I do use linux exclusively these days, though, and use Sage (the open-source alternative to mathematica and maple) in my research.
      posted by kaibutsu at 5:15 PM on February 15, 2010


      I also don't claim to always be perfect about closing my parenthetical statements, which probably goes a long way towards explaining my deficiencies as a programmer.)
      posted by kaibutsu at 5:16 PM on February 15, 2010 [6 favorites]


      R is very pretty, but I'm too invested in Stata.
      posted by scunning at 5:18 PM on February 15, 2010


      Is there something like Sweave for Matlab...? Or, does R generally have the random/arcane stuff functions you can find in Matlab toolboxes? Make my life easier, please.
      posted by zeek321 at 5:21 PM on February 15, 2010


      Guess I'm not gonna get laid for a while after that last comment.

      I guarantee you that somewhere out there is a frustrated biologist who will love you forever if you can show them how to change the axis tick marks.
      posted by penguinliz at 5:24 PM on February 15, 2010 [7 favorites]


      Regarding R's memory limitations - not really. Even 64-bit implementations run into memory problems because of the use of 32-bit integers in some Fortran code that's involved in R. That's the big downside of R, for my purposes... "Failed to allocate vector of size 1.3gb". But I usually manage to get around it, somehow.
      posted by Jimbob at 5:30 PM on February 15, 2010


      This is perhaps a good time to introduce scipy which has much of R's functionality, but runs 80 billion times faster, on account of it being mostly made of Fortran (but having a friendly Python interface). Matplotlib is pretty useful too. Did I mention I like Python?
      posted by Popular Ethics at 5:33 PM on February 15, 2010 [3 favorites]


      Yeah, the biggest problem with R syntax AFAICT is that it's unconventional. I mean that both in the sense that it violates the expectations you've built up using other languages (the aforementioned "->" and "<-" as assignment operators are the worst offenders here, although of course "=" is still available if you want it) and in the sense that it lacks the sort of internal naming conventions that make a language easier to learn. For each built-in function with a two-word name, you have to remember whether those words are camel-cased or all lowercase, whether one's abbreviated, whether there's a period separating them ¡ª?there's simply no pattern. That's not a serious language design problem, but it's deeply irritating on a day-to-day basis.

      Well, and yeah, those memory allocation glitches. I tend to use Weka for serious machine learning these days, because that's where the memory problems seemed to come up the most for me.
      posted by nebulawindphone at 5:34 PM on February 15, 2010


      Thanks, parudox! I use R on a daily basis for my Linguistics labs, but I hadn't had the chance to explore additional packages and GUIs.
      posted by HopperFan at 5:43 PM on February 15, 2010


      In general, I've found the issue with R to be the issue with any open source project that does more than one complex thing/has obscure extensions. Core is fairly solid, and there are a lot of cool beginners resources and add-ons for moderately complex operations that are fairly solid. However the more obscure the more the expectation is you know exactly how to apply it. So your basic linear models are fairly easy, but when you do something obscure, you better have a solid grounding in the math or you won't know what assumptions and tests are needed.

      Whereas commercial programs tend to be written that assume it's your first time doing something. Their help is focused on the beginner user who doesn't know the math. They tend to be simplistic and make it hard to do anything complex or obscure. And their extensibility sucks. Seriously, I've written SAS macros that are 12 lines and several hours of research to do something that in R is one simple line of commands.

      This makes R an excellent tool for creating your own analysis or for doing moderately complex statistics. However you better know the math if you want to do something interesting.

      Frankly this makes sense, since people tend to write add-ons for stuff they know how to do and want to do regularly, or make it easier for others to do.

      All in all R is a useful tool, and a free one. But, especially in extensions, the ability of commercial software to pay people to document how to do stuff and make it as simple as possible can undercut it.
      posted by gryftir at 5:46 PM on February 15, 2010


      "I just did it, since I don't have it installed on this computer."

      Okay, now get it to run a multiple regression in R commander.
      posted by 517 at 5:48 PM on February 15, 2010


      It's somehow surprising that no one's done R before on Metafilter. Good post.

      Oh, also, no one's mentioned Crantastic yet; it's a nice alternate interface for searching through (and tagging) CRAN packages.
      posted by thisjax at 5:49 PM on February 15, 2010


      What do people do when their datasets get too large, or the computations take too long? Just leave for the day and come back 24 hours later?
      posted by enkiwa at 6:08 PM on February 15, 2010


      What do people do when their datasets get too large

      Think carefully about my data, rearrange it and try again. Although packages like biglm are useful.

      or the computations take too long? Just leave for the day and come back 24 hours later?

      Or 2 weeks later, in the case of some things I've done. But that's what you get for dealing with big data.
      posted by Jimbob at 6:10 PM on February 15, 2010


      What's the deal with that <>The Art of Computer Programming and Cormen et al.'s Introduction to Algorithms use it, but are there any programming languages that use it? Maybe something to do with the punch card era?
      posted by scose at 6:30 PM on February 15, 2010


      Oops, something bad happened with my HTML. I was talking about the <- operator for assigment.
      posted by scose at 6:32 PM on February 15, 2010


      The R mailing list would make a pretty good drinking game: a sip for every time someone gets a terse, Calvin-Coolidge-esque reply; a sip for every time Brian Ripley or Peter Dalgaard posts to the list; two sips for every time someone gets referred to "a basic statistics class"; a shot for every time the entire text of someone's reply is "?command"...

      Anyway, great post. I thought I would contribute another link because I really haven't seen anything like it before: a bunch of shiny Web apps that use R to dynamically render graphs.

      > What do people do when their datasets get too large

      ?filehash

      (couldn't resist, sorry)
      posted by en forme de poire at 6:37 PM on February 15, 2010 [1 favorite]


      Yes R doth truly rock.
      posted by jeffburdges at 6:38 PM on February 15, 2010


      ?filehash

      (couldn't resist, sorry)

      Go on.

      > ?filehash
      No documentation for 'filehash' in specified packages and libraries:
      you could try '??filehash'
      posted by a robot made out of meat at 6:50 PM on February 15, 2010


      scose: "What's the deal with that <-"

      The idea is that equality should not be mistaken for assignment, and in programming assignment is the act of storing something for later reference, so an arrow makes sense for that.

      In algol family languages, "=" where the programmer meant "==" is still a common enough bug to lead to silliness like if( 3 == x ).
      posted by idiopath at 6:52 PM on February 15, 2010 [2 favorites]


      R has been on my fiddle-with list for a while now. Interesting that the assignment operator is Knuth's "gets" (x <- y meaning "x gets y"); I thought when I learned about it that "gets" was a nice notation, but I didn't until recently realize there was a popular language that used it. Makes me wonder what other interesting language knobblies there are.

      Sweave looks terribly useful. Is Sweave (perhaps with make) smart enough to do caching, or does it re-run your data analysis on every compile?
      posted by fantabulous timewaster at 6:55 PM on February 15, 2010


      Fantabulous, I present the cacheSweave package.
      posted by Jimbob at 7:04 PM on February 15, 2010 [1 favorite]


      I was. Go try to get a version of R set-up with a few different GUIs to choose from, and do it in the same amount of time it takes to use a windows installer. You won't. Especially when R, and most of the R GUIs weren't in the normal repositories at the time I tried to set it up.

      Was this 15 years ago? You could almost certainly has a linear regression done in fifteen minutes if you googled "R linear regression tutorial". R is less easy than minitab or JMP because it does more. Try doing anything in your first ten minutes at a SAS terminal. Open source has nothing to do with it.

      Stata gets a lot of credit for being crazy easy and having nice menus. Side effect is watching people do things very wrong because it made it too easy.
      posted by a robot made out of meat at 7:08 PM on February 15, 2010


      Oh, and a tip for the R fans out there - if you haven't discovered it already, you should check out sqldf - it uses SQLite to do seamless SQL operations on data frames in R. I don't know how I survived for so long without it.
      posted by Jimbob at 7:11 PM on February 15, 2010 [5 favorites]


      In algol family languages, "=" where the programmer meant "==" is still a common enough bug

      That's why I prefer languages such as algol, where assigment is ":=" /smartass
      posted by Monday, stony Monday at 7:16 PM on February 15, 2010 [1 favorite]


      robot: hoist on my own petard, there. Try here: filehash (or, install.packages("filehash"); library("filehash"))

      A useful blog entry about it is here.
      posted by en forme de poire at 7:17 PM on February 15, 2010


      > Okay, now get it to run a multiple regression in R commander.

      If you have data formatted as, say:
      case,response,var1,var2,var3
      1,0,1,-3,0.2
      2,0.1,2,-5,0.4
      3,2,4,-2,0.01
      ...
      
      where rows are cases and columns give you the value of your regressors in each case, then the following should give you a multiple regression:
      your.data <- read.csv("your-data.csv", header = 1, row.names = 1)
      model <- lm(response ~ var1 + var2 + var3, data = your.data)
      summary(model)
      
      A useful PDF is here.
      posted by en forme de poire at 7:26 PM on February 15, 2010 [2 favorites]


      So, I have, uh, a friend, who is pretty uneducated about statistics. I think I, I mean, my friend would be much more likely to learns some stats if he could learn by doing stuff in R.

      Any recommendations for a "learn by doing" tutorial for R, one which assumes no knowledge of R or statistics, and aims to build both together?
      posted by orthogonality at 8:03 PM on February 15, 2010


      Let's say I am good at math but bad at computers and I want to run R on my (OSX 10.6) Mac. I don't know what python, perl, or java are. I'm comfortable with working from a command line (e.g. this is how I use Maple and MAGMA.) What do I do?
      posted by escabeche at 5:10 PM on February 15 [+] [!]


      Install it straight from here. The mac version is quite a bit nicer, I think.

      I've previously failed in getting RPy to work. Is it worth it, and any tips about installing it on a Mac?
      posted by a womble is an active kind of sloth at 8:12 PM on February 15, 2010


      What fun it is to troubleshoot 1-based array indices....
      posted by Blazecock Pileon at 8:14 PM on February 15, 2010


      R saved my bacon when I gave up getting anyone to look at my data sets in Matlab. If a ME who knows programming only in Fortran 77 and C can learn R, anyone can. Many thanks for the GUI recommendations.
      posted by jet_silver at 8:19 PM on February 15, 2010


      "Any recommendations for a "learn by doing" tutorial for R, one which assumes no knowledge of R or statistics, and aims to build both together?"

      Using R for Introductory Statistics (pdf).

      Introductory statistics with R By Peter Dalgaard

      Statistics: an introduction using R By Michael J. Crawley

      Analyzing linguistic data: a practical introduction to statistics using R By R. Harald Baayen

      Learning Applied Statistics with R (stack overflow question)

      I also like A first course in statistical programming with R, but that might be a bit at the intermediate level, as there is a lot of assumed math.
      posted by ollyollyoxenfree at 8:42 PM on February 15, 2010 [39 favorites]


      While I've never used R, I just set my tutoring student up with it. He's a middle-aged fellow who's decided, on a lark, to go back to school for financial modeling.

      After several months' hiatus, he set up a session with me a couple weeks ago. I met him, and his major question was "Should I install this GNU SCL thing I found on google? Or should I copy the statistics functions out of the book?" It seems that, since his beginning programming classes were in C++, he was of the impression that it was a good language to use for running a derivative pricing model. Mind you, this is the same fellow who needed help in his first tutoring session with what a "text file" was.

      So, setting aside the relative merits of R versus other numerical analysis languages, I'd still say it's a giant fucking improvement over C++.
      posted by Netzapper at 8:47 PM on February 15, 2010 [1 favorite]


      I was chatting with a guy who I guess is a statistician or something. He's a professor I think, looks really scholarly, programs in R.

      And he made me feel all bad because I was talking about some code I'd written that used, like, 3 loops or something (yeah, I know n3 or something but seriously okay because this was a function in the real world, where we're not processing an infinite number of items, just like 1000 or something, and three nested loops will handle that just fine). And he's all like "You shouldn't be using loops. A real programming language, you shouldn't have to use loops to do [whatever it was we were talking about, I can't remember]" And I felt really bad. I mean, I was thinking, what the heck is wrong with me that unless I'm using loops and a bunch of if-thens I can't figure it out.

      And finally I asked, "Okay, so how exactly would the computer figure this thing out?" And he's like, "Well, I guess, behind the scenes, it's probably using loops."

      That made me feel a bit better, and I know writing a web app or something in R would probably be pretty dumb. But still, there's a part of me that wonders what's wrong with me that I can't figure it unless I have my loops.
      posted by Deathalicious at 8:50 PM on February 15, 2010


      I want to note this wasn't R. I don't know R yet and probably never will be, as statistics are, to me, not the most interesting thing I can do using computers.
      posted by Deathalicious at 8:52 PM on February 15, 2010


      Actually if you want to use R's feature set in a more conventional/modern langauge, you can use Rpy to call R functions from Python. That would probably be helpful for people who already know Python.
      posted by delmoi at 8:57 PM on February 15, 2010


      And finally I asked, "Okay, so how exactly would the computer figure this thing out?" And he's like, "Well, I guess, behind the scenes, it's probably using loops."

      Sure, but it's also more likely to be able to parallelize your code. If you use a loop, the CPU can only work on one index at a time, whereas if you use a map/reduce or filter style call where you pass a function that gets applied to every element it can run on lots of CPU cores or even whole clusters of machines. That's one of the reasons people are pushing functional programming so much these days, since it's easier to parallelize.
      posted by delmoi at 9:06 PM on February 15, 2010 [3 favorites]


      That made me feel a bit better, and I know writing a web app or something in R would probably be pretty dumb. But still, there's a part of me that wonders what's wrong with me that I can't figure it unless I have my loops.

      This seems to be one of the major impediments for teaching OO and functional programmers SQL. "No, stop trying to tell the computer how to retrieve the data, tell it what you want."
      posted by rodgerd at 9:38 PM on February 15, 2010 [2 favorites]


      functional programmers

      That should, of course, be proceedural. Stupid thinkos.
      posted by rodgerd at 9:38 PM on February 15, 2010


      Usually "for loop aversion" is just a smokescreen for scripting languages that are too slow to do any real work themselves (e.g., Matlab), so to get any sort of performance they have to ship off large batch operations to "real code" written in C, which will then promptly run a for loop.

      Parallelization is fine, but functional programming is hardly a magic bullet; you can write perfectly functional (e.g., heavily recursive) code that is still impossible to parallelize, and there are imperative constructions (like parfor in Matlab) that are equivalent to map while maintaining common for loop syntax.
      posted by Pyry at 9:45 PM on February 15, 2010


      I've previously failed in getting RPy to work. Is it worth it, and any tips about installing it on a Mac?

      Unless you need your R objects to be accessible within a Python environment or vice versa, it can be painful to troubleshoot and perhaps more work than should be required. You also need to understand R and Python data structures pretty well. IMO, for maintainability, consider using R as a scripting language directly, instead, using Rscript.
      posted by Blazecock Pileon at 10:03 PM on February 15, 2010


      I've used R here and there for school projects, and found it to be a very powerful and really neat, if somewhat difficult to start with language. It was certainly satisfying to be able to write 5 lines of code to do the same thing that my peers were doing in 50+ lines of Java.

      If you're like me and have a certain affinity for paper reference books, the following helped me a lot with the basics of R/S: The Basics of S-Plus.

      I think the school's library had the 2nd edition when I checked it out, so you will probably do just fine with the (much cheaper) 3rd edition.
      posted by grandsham at 11:09 PM on February 15, 2010


      Another vote for R here. Recently, I've been combining R and C, but writing the backend of my analysis (I work with Bayesian hierarchical models) in C and interfacing with R. This can speed things up by orders of magnitude in the types of analyses I do. I get the best of both worlds that way.
      posted by Philosopher Dirtbike at 12:48 AM on February 16, 2010


      I just use the Data Analysis add in for Excel.
      posted by Damienmce at 1:01 AM on February 16, 2010 [1 favorite]


      I cannot even begin to express how perfect the timing of your post is. Seriously, I was just having a conversation with a friend earlier tonight about this very thing, including all of my anxiety and overwhelmedness about needing to understand R all its labyrinth workings. All of the answers I need are right here. You have saved me hours of research, that I can now spend on figuring out how to actually do my real research.

      I must spouse you now.

      Also, I just bought the Baayen book from Amazon yesterday. It's great to hear MeFites recommending it, as well as R itself.
      posted by iamkimiam at 1:41 AM on February 16, 2010


      This seems to be one of the major impediments for teaching OO and functional programmers SQL. "No, stop trying to tell the computer how to retrieve the data, tell it what you want."

      How can there even be an impediment to learning SQL? It's about the easiest thing ever. I bought an "SQL in 24 hours" book in highschool and I think I actually only spent about 4 even reading it.
      posted by delmoi at 3:24 AM on February 16, 2010


      Well the fact that you would turn to a book for a theoretical grounding puts you in an upper percentile unfortunately. A lot of programmers with little prior database experience tend to approach it as if the database is just a replacement backing store for arrays that also has some fancy filtering. So they'll do dumb things like fetch all rows matching A from table X and store than in an array, and then fetch all rows matching B from table Y and store than in a second array, and then they'll loop through each element in the first array comparing it to each element in the second array to find the relations. They do this because they don't know what a join is (or they do but they get confused by all the different kinds of joins) or how to specify one to the database. So they instead do what they know, which is to just plow ahead and implement things the way they would if they had no database and just a bunch of flat files.
      posted by Rhomboid at 3:53 AM on February 16, 2010 [2 favorites]


      Years ago I unwittingly joined a cult called SAS, and now I'm trapped paying exorbitant licensing fees and going to expensive courses. Would R be a way out of this cult? Seriously: I've put years of my life into learning SAS- is there an advantage to leaving?
      posted by acrasis at 4:19 AM on February 16, 2010


      FWIW, SAS recently announced the R Interface to SAS/IML Studio.

      Disclaimer: I work for SAS.
      posted by kurmbox at 5:15 AM on February 16, 2010


      I bought the ggplot2 book by Wickham a few months ago and I highly recommend it. It enables amazingly good plots to be produced. There are pdf versions of bits of it floating around online, but I wanted all the information in one place and to support his great package.
      posted by a womble is an active kind of sloth at 6:31 AM on February 16, 2010


      Needs more cowbell.
      posted by warbaby at 6:50 AM on February 16, 2010


      Awesomeness <- Emacs + ESS + R

      I use R everyday and I am still learning. Its a pain to figure stuff out when you don't know the appropriate function name but when you do there is a perverse sense of enjoyment (I still remember the day I discovered alpha shading in graphs!). Now if only I could convince my PI to stop working in Excel...
      posted by Hutch at 7:07 AM on February 16, 2010


      Now that's timely. My fully paid-for, fully activated Minitab just threw a fit about not being activated and the license server kicked me off, telling me that the activation code is already in use. Support will fix it eventually, I guess, but meanwhile I'll have an other look at R. Last time I tried it it seemed like one of those sprawling, academic-based software that are unusable for casual users like myself: I only do stats once in a while, and I need an interface that I can figure out immediately. Having to learn a full language (and to remember what cryptically-named package does what) seemed overkill, so after playing a little with R-Commander I quickly came back to the commercial comfort of Minitab. But it looks that I don't have much choice now.
      posted by elgilito at 7:29 AM on February 16, 2010


      @Popular Ethics: > This is perhaps a good time to introduce scipy

      The Scipy/Numpy/Matplotlib triumvirate are awesome as well! Matlab's matrix-friendliness and plotting capabilities meet Python's everything else.

      I have to say, though, good luck compiling any of them from source. I had to run some Scipy scripts on a cluster, and so I couldn't just use a package manager because I didn't have root access. There was an older version of Scipy that was installed, but it threw some kind of error when you imported scipy.stats and so it was kind of unusable for my purposes. Anyway, compiling was not an experience I would wish on anyone (mostly, to be fair, it was getting the BLAS/LAPACK part to compile). In case anyone has to suffer through this, garnumpy helps a lot, although the experience was still far from headache-free. R, in contrast, was pretty much a breeze to install locally.

      I've also had weird experiences with things not working properly or not being implemented in Scipy (I seem to remember having some bizarre problem with the hypergeometric CDF implementation, though I don't remember exactly what was wrong), so I've mostly had to resort to RPy for my stats-in-Python needs. Also, R is still the natural choice for me if I have to do some kind of statistical modeling because the sheer number of packages is so extensive and the modeling commands themselves have a pretty simple syntax. Scipy's a great project, though, and I'll definitely be keeping an eye on it.
      posted by en forme de poire at 8:43 AM on February 16, 2010 [1 favorite]


      139 favorites so far parudox. Excellent!
      posted by bukvich at 9:06 AM on February 16, 2010


      Awesomeness <>

      So I hear, but to a non-initiated emacs person, I spent a few hours on Sunday trying to install this (on a mac). Pretty hard to figure out what is going on based on the scant instructions online so I returned to my pedestrian approach of copying bits of scripts into the R console and running them. I feel like there must be a better way....

      posted by a womble is an active kind of sloth at 9:32 AM on February 16, 2010


      How can there even be an impediment to learning SQL? It's about the easiest thing ever. I bought an "SQL in 24 hours" book in highschool and I think I actually only spent about 4 even reading it.

      You might like to think that, but it simply isn't true. In the OO world, especially, there are a slew of people who consider themselves programmers who claim learning the basics of SQL and relational models is too hard. It's quite frightening, really, especially when you look at some of the crapulent ORMs, frameworks, and OO DBs developed to cater to people who are too dumb to code[1].

      . So they'll do dumb things like fetch all rows matching A from table X and store than in an array, and then fetch all rows matching B from table Y and store than in a second array, and then they'll loop through each element in the first array comparing it to each element in the second array to find the relations. They do this because they don't know what a join is (or they do but they get confused by all the different kinds of joins) or how to specify one to the database.

      Oh god this. Still, it can let you look like a hero; I once spent an afternoon getting a two-order-of-magnitude improvement in a codebase that was doing this for every web page the app served.

      As I like to point out to people when I find them doing aggregaion or sorting in $LANGUAGE when they have their data in a perfectly good RDBMS, if you really think you can code these sorts of algortihms better than a decent database server, you should talk to Larry, because he'll make you a millionaire.

      [1] And yes, I'm well aware there are good and useful cases where OO DBs make a lot of sense, and are certainly more appropriate to a given problem than a relational one.
      posted by rodgerd at 9:32 AM on February 16, 2010


      sorry bout the italics... I was trying to quote "Awesomeness <- Emacs + ESS + R"
      posted by a womble is an active kind of sloth at 9:33 AM on February 16, 2010


      I do a lot of work in SPSS syntax but have not done anything that looked like real programming for over a decade. What got me into R was a great book by Joseph Adler, Baseball Hacks. Not only does it act like a great R primer (full intro chapter and examples through the rest of the book), but is also gives an intro chapter on mySQL and one on PERL, so that by the end of the book you are getting them to all play nicely with one another. Not an exhaustive education on any of the three, but enough for me to get down to actually doing a little work with it.
      posted by cgk at 9:38 AM on February 16, 2010


      R is a terrible programming language. It is a wonderfully efficient and comprehensive collection of tools. I use it every day and find something to hate most days... and yet I use it every day.

      A lot of people seem to want R to be a language for building applications. That's a terrible idea. Call out to R, have it do marvelous things quickly, load the results back into some reasonable language, and move on.
      posted by gurple at 10:26 AM on February 16, 2010 [2 favorites]


      Also, ladies, if it helps my case any I am using R at a brewery down the road from my office.

      You know who else did statistics in a brewery? Yep, that's right, W. S. Gossett. Or "student" to you, Guinness.
      posted by Mental Wimp at 11:01 AM on February 16, 2010 [5 favorites]


      Some notes from a package developer who is used to working on clusters in R:

      Sooner or later you need to call out to C/C++ (usually with OpenMP directives if you can) and/or a relational database, 'ff'/'bigmemory', or possibly Hadoop/MapReduce, to do heavy lifting. That's OK -- it's the same path that most Matlab programs eventually tread as they grow. The Incanter project (in Clojure, with its mapreduce hooks and RIncanter bindings) looks like a possible next step in R's evolution -- the biggest difference between Matlab and R is in the core, where Matlab can easily take care of SMP/MPP with checkpointing, and R isn't there yet. You end up with a slapdash assembly of 'doMPI', 'foreach', etc. and C/OpenMP function calls, which while it works OK, isn't exactly a gentle learning curve. But large-scale numeric computing rarely is.

      Anyways, hope this provides some ideas for people that are running out of time or RAM in R. Various combinations of the above have solved most of my R-related issues along the way. In a few weeks, I will hopefully be putting a semi-flexible mixture model package on CRAN, with a more restrictive, but faster, core E-M loop than 'flexmix'. I hope it will offer some ideas for using OpenMP directives to radically speed up a common task (which I feel should be made easier).


      To whoever posted about sqldf:

      You do realize that sqldf selects are typically on the order of a hundred times slower than using R's native hybrid indexing, yes? As time goes by, I grow more and more convinced that using SQL on data.frames is somewhat pointless. merge() handles the typical JOIN operations, and SELECT is easily handled by redefining

      "%u%" <- union
      "%d%" <- setdiff
      "%i%" <- intersect
      "%nin%" <- function(x, table) match(x, table, nomatch=0) == 0
      "%notin%" <- function(x, table) match(x, table, nomatch=0) == 0

      Try it. I bet you'll find that it's easier and faster after a short while. I tried sqldf for a while (after about 15 years of working on relational databases and 5 years of using R off-and-on). Then I figured out how to do the same things with indexing. The latter is faster and usually clearer. R is not fast to begin with; making it slower is a good way to experience frustration.
      posted by apathy at 12:08 PM on February 16, 2010 [1 favorite]


      nowoutside: I'm working my way through the new O'Reilly book R in a Nutshell right now! I have a very thin programing background (some IDL and even less Python), and things seem to be clicking.

      Oh man, there's an O'Reilly book for this? That bears closer examination.


      Deathalicious: And he's all like "You shouldn't be using loops. A real programming language, you shouldn't have to use loops to do [whatever it was we were talking about, I can't remember]" And I felt really bad.

      My take is that he's trying to talk up his own favorite language, & coming off as a language zealot.

      This keeps popping up here, so: use &lt; to get "<" & &gt; to get ">." (They stand for "less than" & "greater than," not, say, "left something" & "right something," which totally doesn't work.)
      posted by Pronoiac at 12:35 PM on February 16, 2010 [1 favorite]


      <ooh! carry on.>
      posted by iamkimiam at 12:45 PM on February 16, 2010 [1 favorite]


      To whoever posted about sqldf:

      You do realize that sqldf selects are typically on the order of a hundred times slower than using R's native hybrid indexing, yes?


      Oh I realize that, but it hasn't impacted me in any way I've noticed. I do it mainly for the syntax. SQL's syntax is so easy - I can figure out sorts and joins and selects so much easier than doing in R with merge() and subset() and so forth. Simply because I've only been using R for about 3 years, while I've been using SQL for about 12. I didn't recommend sqldf for speed, I recommended it because there might be other people out there who like to deal with SQL as well. However, I will endeavor to give your suggestions a try.
      posted by Jimbob at 1:29 PM on February 16, 2010


      517: Okay, now get it to run a multiple regression in R commander.

      Or, hey, I have an idea! Why don't you do it yourself?

      We've told you it's all right there and how to get to it. I don't know about idiopath, but I don't know enough R to do your experimentation for you. I can, however, see one hundred and fifty seven separate packages for R in Debian. Seven are the base installation of R, and the rest seem to be libraries. The "r-recommended" metapackage will add a number of the most common libraries. All you have to do is point and click a little, and voila.

      You've already made up your mind that "it's hard!", when it's not hard at all. You don't have to compile anything on Debian or Ubuntu to get a fully-functioning R installation with a huge library of prepackaged utilities. All you have to do is click on some checkboxes for which features you want, wait awhile for them to download/install, and then use them. And if any bugs are found or new features are rolled out, your distro's automatic update feature will notify you and install them if you like.

      The keywords you need to search with: r-base, r-doc, r-cran, r-noncran (for one package). From the command line, you can also use "^r-" as your search term... meaning any package that starts with r-. I don't know if that works in the GUI.

      It would be a lot easier to find in the giant Debian archives if they'd called the language something longer than one letter. Searching for just r returns over 13,000 results.
      posted by Malor at 3:46 PM on February 16, 2010


      Malor: "^r-" as your search term... meaning any package that starts with r-. I don't know if that works in the GUI. "

      Yeah, that works in aptitude. Regarding the little assignment, I got as far as tinkering with R-Cmdr and then realized I was spending the rest of my time figuring out stuff about statistics more than figuring out R.
      posted by idiopath at 4:35 PM on February 16, 2010


      R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      posted by brendano at 4:57 PM on February 16, 2010


      Actually, I fired up my Ubuntu image, and ^r- doesn't properly work from the GUI. It seems to just ignore the ^. So, I suggest using r-base, r-cran, and r-doc. I had trouble finding R Commander; as it turns out, the package is named r-cran-rcmdr. Can't search on "commander", either. Grr.

      Trying to figure out what it was called, I checked the R Commander website, and noticed that they say Ubuntu's version is typically out of date. They recommend using their repository instead.

      To do that, add a mirror in Administration/Software Sources/Other Software, Add button. Enter:

      deb http://cran.stat.ucla.edu/bin/linux/ubuntu karmic/

      You can choose other mirrors if you want, that's just what I picked. Make sure the checkbox to use that source is checked.

      When you close that program, you'll get a warning about a missing key. You can ignore this if you wish; you'll get warnings about untrusted software when you proceed with your R installation. If this worries you, don't install yet. If you don't care, go ahead and install "r-recommended", and whatever else you want.

      Adding their key is hard to do from the GUI. The GUI requires a key file, and the R team doesn't directly provide one. Rather, they publish their key through the keyserver network. This is safer, because if their website gets compromised, the bad guys can't hand out both a bogus key file and malware signed with that key. Keeping the key out-of-band is much more robust. But, since the GUI can't talk to a keyserver, you pretty much have to hit the command line.

      The published method on the project Ubuntu archive is a little more complex than it needs to be. This is a slightly simpler solution:

      sudo apt-key adv --keyserver keys.gnupg.net --recv-keys E2A11821

      Note: that command is a little dangerous, above and beyond trusting the R developer, because you don't know if I'm giving you the correct key ID. I could be an evil miscreant, or I could just have made a typo. For maximum safety, double-check the key code on the R project site. It's just past the heading "SECURE APT".
      posted by Malor at 5:34 PM on February 16, 2010


      R's mailing list is not pleasant. R's community on StackOverflow is really, really helpful - and you can occasionally get help from the person who wrote the package you're asking about (Hadley Wickham OMG <3).

      Also, when R does something that pisses you off, you're never in doubt about what to scream. Try that with SPSS.
      posted by McBearclaw at 7:51 PM on February 16, 2010 [1 favorite]


      Also: do people really use GUIs for R? That seems barbaric to me.
      posted by McBearclaw at 7:52 PM on February 16, 2010


      You do realize that sqldf selects are typically on the order of a hundred times slower than using R's native hybrid indexing, yes? As time goes by, I grow more and more convinced that using SQL on data.frames is somewhat pointless. merge() handles the typical JOIN operations, and SELECT is easily handled by redefining

      Have you looked at the R/PL for Postgres? Same issues?
      posted by rodgerd at 1:12 AM on February 17, 2010


      Or, hey, I have an idea! Why don't you do it yourself?

      Aaaah, just like the R mailing list!

      *sighs contentedly*
      posted by Jimbob at 1:51 AM on February 17, 2010 [2 favorites]


      Jimbob, he was asking us to run a statistical analysis for him. We told him how to do it, and in fact I just posted a fairly detailed set of instructions on how to get the most recent version running on Ubuntu.

      I am not, however, going to do his homework.
      posted by Malor at 2:37 AM on February 17, 2010


      Oh I know, I was just kidding. Most of the similarly terse replies on the R mailing list are in response to similarly pathetic questions ;)
      posted by Jimbob at 2:44 AM on February 17, 2010


      Usually "for loop aversion" is just a smokescreen for scripting languages that are too slow to do any real work themselves (e.g., Matlab), so to get any sort of performance they have to ship off large batch operations to "real code" written in C, which will then promptly run a for loop.
      I think Matlab now uses just-in-time compilation to evaluate loops, so that the loop body is (slowly) parsed only once rather than each time through the loop body. There's occasionally discussion on the Octave mailing lists about adding this feature, but it seems unlikely to happen soon for a number of reasons.

      Are there other languages that have this limitation? I guess in Perl you'd see it in a loop containing "eval 'code'" rather than "eval { code }", but I haven't done any benchmark to see what the penalty is.
      posted by fantabulous timewaster at 10:56 AM on February 17, 2010


      The problem is unlikely to be just parsing repeatedly. The C code for (i = 0; i < n; i++) x[i] += y is going to run much, much faster than anything that involves repeated dispatch of even bytecode one array element at a time. Not only do you save the instructions needed for the comparisons and jumping, but you also make cache misses much less likely, avoid bad branch prediction, allow SIMD, etc. So for any array-understanding scripting language (R, MATLAB, NumPy),

      for (i in seq(length(x))) {
          x[i] <- x[i] + 1
          x[i] <- x[i] * 2
      }


      is going to be a lot slower than

      x <- (x + 1) * 2

      Even if you pull out all the stops with compilation, unless you are also going to do magic analysis that allows you to understand that the latter is mathematically equivalent to the former. And that's fairly difficult to do.

      The latter is really easier to type and understand, too, but people who are stuck in an Algol-like paradigm sometimes have a hard time wrapping their heads around the possibility.

      You almost never need a for loop in R. I think I've used about two of them in the last five years or so.
      posted by grouse at 11:10 AM on February 17, 2010 [2 favorites]


      fantabulous timewaster: I guess in Perl you'd see it in a loop containing "eval 'code'" rather than "eval { code }", but I haven't done any benchmark to see what the penalty is.

      In Perl, I'd try putting the loop into eval 'code'. I just compared this way to something running eval for every line in a file, & there's a good 20-30x slowdown that way.

      eval {code} is more for robustness in the face of errors, I think.
      posted by Pronoiac at 3:29 PM on February 17, 2010


      USGS has a free R course, which focused more on command line stuff in 2008 and has more GUI (R commander and Rattle) this year. It's a good place to start for beginners, but I also learned a lot about using the various GUIs that make it somewhat easier to create graphics without having to look up all the necessary commands.
      posted by stinker at 9:21 AM on February 20, 2010 [1 favorite]


      What do people do when their datasets get too large, or the computations take too long? Just leave for the day and come back 24 hours later?

      A) We often don't load everything into memory at once. Fine ways to subset the data and work on a piece of it at a time

      B) We parallelize the code, so that we can split it over may processors, often on a cluster. As we speak, I have 200 cores crunching some genomic data for me.

      c) Yes, sometimes there's no way around long jobs. I've certainly done analyses that take, say, a week to run.

      Bioinformaticists are a good group to ask these questions. Dealing with whole genomes has made us learn lots of tricks for dealing with very large data sets. (Two other good groups are astronomers and high-energy physicists)
      posted by chrisamiller at 3:59 PM on February 20, 2010


      Also, R is the language I love to hate. The power is great. The syntax makes me cry, especially when switching from my standby language of Ruby.
      posted by chrisamiller at 4:00 PM on February 20, 2010


      « Older Because Pop Rocks   |   Prince rehearsal videos, 1984 Newer »


      This thread has been archived and is closed to new comments




      ¡°Why?¡± asked Larry, in his practical way. "Sergeant," admonished the Lieutenant, "you mustn't use such language to your men." "Yes," accorded Shorty; "we'll git some rations from camp by this evenin'. Cap will look out for that. Meanwhile, I'll take out two or three o' the boys on a scout into the country, to see if we can't pick up something to eat." Marvor, however, didn't seem satisfied. "The masters always speak truth," he said. "Is this what you tell me?" MRS. B.: Why are they let, then? My song is short. I am near the dead. So Albert's letter remained unanswered¡ªCaro felt that Reuben was unjust. She had grown very critical of him lately, and a smarting dislike coloured her [Pg 337]judgments. After all, it was he who had driven everybody to whatever it was that had disgraced him. He was to blame for Robert's theft, for Albert's treachery, for Richard's base dependence on the Bardons, for George's death, for Benjamin's disappearance, for Tilly's marriage, for Rose's elopement¡ªit was a heavy load, but Caro put the whole of it on Reuben's shoulders, and added, moreover, the tragedy of her own warped life. He was a tyrant, who sucked his children's blood, and cursed them when they succeeded in breaking free. "Tell my lord," said Calverley, "I will attend him instantly." HoME²Ô¾®¿Õ·¬ºÅѸÀ×Á´½Ó ENTER NUMBET 0017
      hxpk.com.cn
      www.nasi9.net.cn
      www.yukan6.net.cn
      daowu1.net.cn
      www.wujin5.net.cn
      benre3.com.cn
      www.suoyu2.com.cn
      www.hexue7.com.cn
      fahen0.net.cn
      717p1.com.cn
      成人图片四月色月阁 美女小美操逼 综合图区亚洲 苍井空的蓝色天空 草比wang WWW.BBB471.COM WWW.76UUU.COM WWW.2BQVOD.COM WWW.BASHAN.COM WWW.7WENTA.COM WWW.EHU8.COM WWW.XFW333.COM WWW.XF234.COM WWW.XIXILU9.COM WWW.0755MSX.NET WWW.DGFACAI.COM WWW.44DDYY.COM WWW.1122DX.COM WWW.YKB168.COM WWW.FDJWG.COM WWW.83CCCC.COM WWW.7MTP.COM WWW.NXL7.COM WWW.UZPLN.COM WWW.SEA0362.NET WWW.LUYHA.COM WWW.IXIAWAN.COM WWW.HNJXSJ.COM WWW.53PY.COM WWW.HAOYMAO.COM WWW.97PPP.COM 医网性交动态图 龙腾视频网 骚姐av男人天堂444ckcom wwwvv854 popovodcom sss色手机观看 淫荡之妇 - 百度 亚洲人兽交欧美A片 色妹妹wwwsemm22com 人妻激情p 狼国48Q 亚洲成人理论网 欧美男女av影片 家庭乱伦无需任何播放器在线播放 妩媚的尼姑 老妇成人图片大全 舔姐姐的穴 纯洁小处男 pu285ftp 大哥撸鲁鲁修 咪米色网站 丝袜美腿18P 晚上碰上的足交视频 avav9898 狠狠插影院免费观看所视频有电影 熟女良家p 50s人体 幼女av电影资源种子 小说家庭乱伦校园春色 丝袜美女做爱图片 影音先锋强奸影片 裸贷视频在线观 校园春色卡通动漫的 搜索wwwhuangtvcom 色妹影视 戊人网站 大阴茎男人性恋色网 偷拍自怕台湾妹 AV视频插进去 大胆老奶奶妈妈 GoGo全球高清美女人体 曼娜回忆录全文 上海东亚 舔柯蓝的脚 3344d最近十天更新 av在线日韩有码 强奸乱伦性爱淫秽 淫女谁 2233p 123aaaa查询 福利AV网站 世界黄色网址 弟姐撸人人操 婷婷淫色色淫 淫姐姐手机影院 一个释放的蝌蚪窝超碰 成人速播视频 爱爱王国 黄色一级片影视 夫妻主奴五月天 先锋撸撸吧 Xxoo88 与奶奶的激情 我和老女人美妙经历 淫妻色五月 zaiqqc 和姐姐互舔15p 色黄mp4 先锋2018资源 seoquentetved2k 嫩妹妹色妹妹干妹妹 欧美性爱3751www69nnnncom 淫男乱女小说 东方在线Av成人撸一撸 亚洲成人av伦理 四虎影视二级 3p性交 外国人妖口交性交黑人J吧插女人笔视观看 黑道总裁 人人x艹 美女大战大黑吊 神马电影伦理武则天 大鸡八插进的戏 爆操情人 热颜射国产 真实自拍足交 偷拍萝莉洗澡无码视频 哥哥狠狠射狠狠爱 欲体焚情搜狗 妹子啪啪网站 jizzroutn 平井绘里在线观看 肏男女 五月天逍遥社区 网站 私色房综合网成人网 男人和女人caobi 成人共享网站 港台三级片有逼吗 淫龙之王小说 惠美里大战黑人 我为美女姐姐口交 乱论色站 西田麻衣大胆的人体艺术 亚洲 包射网另类酷文在线 就爱白白胖胖大屁股在线播放 欧美淫妻色色色 奥蕾人艺术全套图片 台湾中学生门ed2k 2013国产幼门 WWW_66GGG_COM WWW_899VV_COM 中国老女人草比 qingse9 nvtongtongwaiyintou 哥哥妹妹性爱av电影 欧美和亚洲裸体做爱 肏胖骚屄 美国十此次先锋做爱影视 亚里沙siro 爆操人妻少妇 性交的骚妇 百度音影动漫美女窝骚 WWW_10XXOO_COM 哥两撸裸体图片 香洪武侠电影 胖美奈 我和女儿日屄 上海礼仪小姐 紫微斗数全书 优酷视频联盟 工作压力大怎么办 成人动漫edk 67ijcom WWW15NVNVCOM 东京热逼图 狠狠干自拍 第五色宗 少妇的b毛 t56人体艺术大胆人体模特 大黄狗与美女快播播放 美女露屄禁图 大胆内射少妇 十二种屄 苍井空绿色大战 WWWAFA789COM 淫老婆3p 橹二哥影院影视先锋 日本h动漫继母在线观看 淫乱村庄 强奸少妇采花魔 小泽玛莉亚乱伦电影 婷婷五月红成人网 我爱色洞洞 和老婆日屄图片 哪个网站能看到李宗瑞全集 操小姨的穴 白洁亚洲图片 亚洲色图淫荡内射美女 国外孕妇radio 哪本小说里有个金瓶经的拉完屎扣扣屁眼闻俩下 在线亚洲邪恶图 快播最新波哆野结依 wwwgigi22com 操紧身妹 丁香五月哥 欧美强奸幼童下载wwwgzyunhecom 撸波波rrr777 淫兽传 水淫穴 哥哥干巨乳波霸中文字幕 母子相奸AV视频录像 淫荡的制服丝袜妈妈 有强奸内容的小黄文 哪里艺术片 刘嘉玲人体艺术大胆写真 www婷婷五月天5252bocom 美女护士动态图片 教师制服诱惑a 黄色激情校园小说 怡红院叶子喋 棚户区嫖妓pronhub 肏逼微博 wwppcc777 vns56666com 色哥哥色妹妹内射 ww99anan 清纯秀气的学生妹喝醉 短头发撸碰 苍井空一级片tupian 够爽影院女生 鲁大娘久草 av淘之类的网站 谷露AV日本AV韩国AV 电台有声小说 丽苑春色 小泽玛利亚英语 bl动漫h网 色谷歌短片 免费成人电影 台湾女星综合网 美眉骚导航(荐) 岛国爱情动作片种子 兔牙喵喵在线观看影院 五月婷婷开心之深深爱一本道 动漫福利啪啪 500导航 自拍 综合 dvdes664影音先锋在线观看 水岛津实透明丝袜 rrav999 绝色福利导航视频 200bbb 同学聚会被轮奸在线视频 性感漂亮的保健品推销员上门推销套套和延迟剂时被客户要求当场实验效果操的 羞羞影院每日黄片 小黄视频免费观看在线播放 日本涩青视频 日本写真视频 日本女人大尺度裸体操逼视频 日韩电影网 日本正在播放女教师 在线观看国产自拍 四虎官方影库 男男a片 小武妈妈 人妻免费 视频日本 日本毛片免费视频观看51影院 波多野结衣av医院百度网盘 秋假影院美国影阮日本 1亚欧成人小视频 奇怪美发沙龙店2莉莉影院 av无码毛片 丝袜女王调教的网站有哪些 2499在线观视频免费观看 约炮少妇视频 上床A级片 美尻 无料 w字 主播小电影视频在线观看 自拍性porn 伦理片日本猜人电影 初犬 无码 特级毛片影谍 日日在线操小妹视频 日本无码乱论视频 kinpatu86 在线 欧美色图狠狠插 唐朝AV国产 校花女神肛门自慰视频 免费城人网站 日产午夜影院 97人人操在线视频 俺来也还有什么类似的 caopron网页 HND181 西瓜影音 阿v天堂网2014 秋霞eusses极速播放 柳州莫菁第6集 磁力链 下载丝袜中文字 IPZ-694 ftp 海牙视频成人 韩国出轨漫画无码 rbd561在线观看 色色色 magnet 冲田杏梨爆乳女教师在线 大桃桃(原蜜桃Q妹)最新高清大秀两套6V XXX日本人体艺术三人 城市雄鹰。你个淫娃 久久最新国产动漫在线 A级高清免费一本道 人妻色图 欧美激情艳舞视频 草莓在线看视频自拍 成电人影有亚洲 ribrngaoqingshipin 天天啪c○m 浣肠video在线观看 天堂av无码av欧美av免费看电影 ftxx00 大香蕉水 吉里吉里电影网 日本三级有码视频 房事小视频。 午午西西影院 国内自拍主播 冲田爱佳 经典拳交视频最新在线视频 怡红影晥免费普通用户 青娱乐综合在线观看 藏经阁成人 汤姆影视avtom wwWff153CoM 一本道小视频免费 神马影影院大黄蜂 欧美老人大屁股在线 四级xf 坏木啪 冲田杏梨和黑人bt下载 干莉莉 桃乃木香奈在线高清ck 桑拿888珠海 家庭乱伦视频。 小鸟酱自慰视频在线观看 校园春色 中文字幕 性迷宫0808 迅雷资源来几个 小明看看永久免费视频2 先锋hunta资源 国产偷拍天天干 wwwsezyz4qiangjianluanlun 婷婷五月社区综合 爸爸你的鸡巴太大轻点我好痛 农村妇女买淫视屏 西瓜网赤井美月爆乳女子在校生 97无码R级 日本图书馆暴力强奸在线免费 巨乳爱爱在线播放 ouzouxinjiao 黄色国产视频 成人 自拍 超碰 在线 腿绞论坛 92福利电影300集 人妻x人妻动漫在线 进入 91视频 会计科目汇总表人妻x人妻动漫在线 激情上位的高颜值小少妇 苹果手机能看的A片 一本道av淘宝在线 佐藤美纪 在线全集 深夜成人 国内自拍佛爷在线 国内真实换妻现场实拍自拍 金瓶梅漫画第九话无码 99操人人操 3737电影网手机在线载 91另类视频 微兔云 (指甲油) -(零食) ssni180迅雷中字 超清高碰视频免费观看 成人啪啪小视频网址 美女婶婶当家教在线观看 网红花臂纹身美女大花猫SM微拍视频 帅哥美女搞基在床上搞的视频下载东西 日本视频淫乱 av小视频av小电影 藤原辽子在线 川上优被强奸电影播放 长时间啊嗯哦视频 美女主播凌晨情趣套装开车,各种自·慰加舞技 佳色影院 acg乡村 国产系列欧美系列 本土成人线上免费影片 波罗野结衣四虎精品在线 爆乳幼稚园 国产自拍美女在线观看免插件 黑丝女优电影 色色的动漫视频 男女抽插激情视频 Lu69 无毛伦理 粉嫩少妇9P 欧美女人开苞视频 女同a级片 无码播放 偷拍自拍平板 天天干人人人人干 肏多毛的老女人 夜人人人视频 动漫女仆被揉胸视频 WWW2018AVCOM jizzjizzjizz马苏 巨乳潜入搜查官 藤浦惠在线观看 老鸹免费黄片 美女被操屄视频 美国两性 西瓜影音 毛片ok48 美国毛片基地A级e片 色狼窝图片网 泷泽乃南高清无码片 热热色源20在线观看 加勒比澳门网 经典伦理片abc 激情视频。app 三百元的性交动画 97爱蜜姚网 雷颖菲qq空间 激情床戏拍拍拍 luoli hmanh 男人叉女人视频直播软件 看美女搞基哪个app好 本网站受美坚利合众国 caobike在线视频发布站 女主播电击直肠两小时 狠狠干高清视频在线观看 女学生被强奸的视频软件 欧美喷水番号 欧美自拍视频 武侠古典伦理 m13113美女图片 日本波多野结衣三级无马 美女大桥AV隐退 在线中文字幕亚洲欧美飞机图 xxx,av720p iav国产自拍视频 国内偷拍视频在线 - 百度 国歌产成人网 韩国美女主播录制0821 韩国直播av性 fyeec日本 骚逼播放 偷拍你懂的网站 牡蛎写真视频 初川南个人资源 韩国夏娃 ftp 五十度飞2828 成人区 第五季 视频区 亚洲日韩 中文字幕 动漫 7m视频分类大全电影 动漫黄片10000部免费视频 我骚逼丝袜女网友给上了 日本女人的性生活和下水道囧图黄 肏婶骚屄 欧美美女性爰图 和美女明星做爱舒服吗 乱伦小说小姨 天天舅妈 日本极品淫妇美鲍人体艺术 黄色录像强奸片 逍遥仙境论坛最新地址 人插母动物 黄s页大全 亚洲无码电影网址 幼女乱伦电影 雯雅婷30p caopran在线视频 插b尽兴口交 张佰芝yinbu biantaicaobitupian 台湾18成人电影 勾引同学做爱 动态性交姿势图 日本性交图10p 操逼动态图大全 国产后入90后 quanjialuanlun 裸女条河图片种子 坚挺的鸡吧塞进少妇的骚穴 迅雷亚洲bt www56com 徐老板去农村玩幼女小说故事 大尺度床吻戏大全视频 wwwtp2008com 黑丝大奶av 口述与爸爸做爱 人兽完全插入 欧美大乳12p 77hp 教师 欧美免费黄色网 影音先锋干女人逼 田中瞳无码电影 男人与漂亮的小母 在线观看 朴妮唛骚逼 欧美性感骚屄浪女 a片马干人 藤原绘里香电影 草草逼网址 www46xxxcn 美女草屄图 色老太人体艺网 男人的大阴茎插屄 北京违章车辆查询 魅影小说 滨岛真绪zhongzi 口比一级片 国产a片电影在线播放 小说我给男友刮毛 做爱视屏 茜木铃 开心四色播播网影视先锋 影音先锋欧美性爱人与兽 激情撸色天天草 插小嫚逼电影 人与动物三客优 日本阴部漫画美女邪恶图裸体护士美女露阴部 露屄大图 日韩炮图图片 欧美色图天天爱打炮 咪咕网一路向西国语 一级激情片 我爱看片av怎么打不开 偷拍自拍影先锋芳芳影院 性感黑丝高跟操逼 女性阴部摄影图片 自拍偷拍作爱群交 我把大姨给操了 好色a片 大鸡吧黄片 操逼和屁眼哪个爽 先生肉感授业八木梓 国产电影色图 色吧色吧图片 祖母乱伦片 强悍的老公搞了老婆又搞女儿影音先锋 美女战黑人大鸟五月 我被大鸡吧狂草骚穴 黄狗猪性交妇 我爱少女的逼 伦理苍井空百度影音 三姨妈的肥 国产成人电影有哪些 偷拍自拍劲爆欧美 公司机WWW日本黄色 无遮挡AV片 sRAV美女 WLJEEE163com 大鸡巴操骚12p 我穿着黑丝和哥哥干 jiujiucaojiujiucao 澳门赌场性交黄色免费视频 sifangplanxyz 欧美人兽交asianwwwzooasiancomwwwzootube8com 地狱少女新图 美女和黄鳝xxx doingit电影图片 香港性爱电影盟 av电影瑜伽 撸尔山乱伦AV 天天天天操极品好身材 黑人美女xxoo电影 极品太太 制服诱惑秘书贴吧 阿庆淫传公众号 国产迟丽丽合集 bbw热舞 下流番号 奥门红久久AV jhw04com 香港嫩穴 qingjunlu3最新网 激情做爱动画直播 老师大骚逼 成人激情a片干充气娃娃的视频 咪图屋推女郎 AV黄色电影天堂 aiai666top 空姐丝袜大乱11p 公公大鸡巴太大了视频 亚洲午夜Av电影 兰桂坊女主播 百度酷色酷 龙珠h绿帽 女同磨豆腐偷拍 超碰男人游戏 人妻武侠第1页 中国妹妹一级黄片 电影女同性恋嘴舔 色秀直播间 肏屄女人的叫声录音 干她成人2oP 五月婷婷狼 那里可以看国内女星裸照 狼友最爱操逼图片 野蛮部落的性生活 人体艺术摄影37cc 欧美色片大色站社区 欧美性爱喷 亚洲无码av欧美天堂网男人天堂 黑人黄色网站 小明看看主 人体艺术taosejiu 1024核工厂xp露出激情 WWWDDFULICOM 粉嫩白虎自慰 色色帝国PK视频 美国搔女 视频搜索在线国产 小明算你狠色 七夜郎在线观看 亚洲色图欧美色图自拍偷拍视频一区视频二区 pyp影yuan 我操网 tk天堂网 亚洲欧美射图片65zzzzcom 猪jb 另类AV南瓜下载 外国的人妖网站 腐女幼幼 影音先锋紧博资源 快撸网87 妈妈5我乱论 亚洲色~ 普通话在线超碰视频下载 世界大逼免费视频 先锋女优图片 搜索黄色男的操女人 久久女优播免费的 女明星被P成女优 成人三级图 肉欲儿媳妇 午夜大片厂 光棍电影手机观看小姨子 偷拍自拍乘人小说 丝袜3av网 Qvodp 国产女学生做爱电影 第四色haoav 催眠赵奕欢小说 色猫电影 另类性爱群交 影像先锋 美女自慰云点播 小姨子日B乱伦 伊人成人在线视频区 干表姐的大白屁股 禁室义母 a片丝袜那有a片看a片东京热a片q钬 香港经典av在线电影 嫩紧疼 亚洲av度 91骚资源视频免费观看 夜夜日夜夜拍hhh600com 欧美沙滩人体艺术图片wwwymrtnet 我给公公按摩 吉沢明涉av电影 恋夜秀晨间电影 1122ct 淫妻交换长篇连载 同事夫妇淫乱大浑战小说 kk原创yumi www774n 小伙干美国大乳美女magnet 狗鸡巴插骚穴小说 七草千岁改名微博 满18周岁可看爱爱色 呱呱下载 人妻诱惑乱伦电影 痴汉图书馆5小说 meinvsextv www444kkggcom AV天堂手机迅雷下载 干大姨子和二姨子 丝袜夫人 qingse 肥佬影音 经典乱伦性爱故事 日日毛资源站首页 美国美女裸体快播 午夜性交狂 meiguomeishaonvrentiyishu 妹妹被哥哥干出水 东莞扫黄女子图片 带毛裸照 zipailaobishipin 人体艺术阴部裸体 秘密 强奸酒醉大奶熟女无码全集在线播放 操岳母的大屄 国产少妇的阴毛 影音先锋肥熟老夫妻 女人潮吹视频 骚老师小琪迎新舞会 大奶女友 杨幂不雅视频种子百度贴吧 53kk 俄罗斯骚穴 国模 露逼图 李宗瑞78女友名单 二级片区视频观看 爸爸妈妈的淫荡性爱 成人电影去也 华我想操逼 色站图片看不了 嫖娼色 肛交lp 强奸乱伦肏屄 肥穴h图 岳母 奶子 妈妈是av女星 淫荡性感大波荡妇图片 欧美激情bt专区论坛 晚清四大奇案 日啖荔枝三百颗作者 三国防沉迷 印度新娘大结局 米琪人体艺术 夜夜射婷婷色在线视频 www555focom 台北聚色网 搞穴影音先锋 美吻影院超体 女人小穴很很日 老荡妇高跟丝袜足交 越南大胆室内人体艺术 翔田千里美图 樱由罗种子 美女自摸视频下载 香港美女模特被摸内逼 朴麦妮高清 亚寂寞美女用手指抠逼草莓 波多野结衣无码步兵在线 66女阴人体图片 吉吉影音最新无码专区 丝袜家庭教师种子 黄色网站名jane 52av路com 爱爱谷色导航网 阳具冰棒 3334kco 最大胆的人体摄影网 哥哥去在线乱伦文学 婶婶在果园里把我了 wagasetu 我去操妹 点色小说激 色和哥哥 吴清雅艳照 白丝护士ed2k 乱伦小说综合资源网 soso插插 性交抽插图 90后艳照门图片 高跟鞋97色 美女美鲍人体大胆色图 熟女性交bt 百度美女裸体艺术作品 铃木杏里高潮照片图 洋人曹比图 成人黄色图片电影网 幼幼女性性交 性感护士15p 白色天使电影 下载 带性视频qq 操熟女老师 亚洲人妻岛国线播放 虐待荡妇老婆 中国妈妈d视频 操操操成人图片 大阴户快操我 三级黄图片欣赏 jiusetengmuziluanlun p2002午夜福 肉丝一本道黑丝3p性爱 美丽叔母强奸乱伦 偷拍强奸轮奸美女短裙 日本女人啪啪网址 岛国调教magnet 大奶美女手机图片 变态强奸视频撸 美女与色男15p 巴西三级片大全 苍井空点影 草kkk 激情裸男体 东方AV在线岛国的搬运工下载 青青草日韩有码强奸视频 霞理沙无码AV磁力 哥哥射综合视频网 五月美女色色先锋 468rccm www色红尘com av母子相奸 成人黄色艳遇 亚洲爱爱动漫 干曰本av妇女 大奶美女家教激情性交 操丝袜嫩b 有声神话小说 小泽玛利亚迅雷 波多野结衣thunder 黄网色中色 www访问www www小沈阳网com 开心五月\u0027 五月天 酒色网 秘密花园 淫妹影院 黄黄黄电影 救国p2p 骚女窝影片 处女淫水乱流 少女迷奸视频 性感日本少妇 男人的极品通道 色系军团 恋爱操作团 撸撸看电影 柳州莫菁在线视频u 澳门娱银河成人影视 人人莫人人操 西瓜视频AV 欧美av自拍 偷拍 三级 狼人宝鸟视频下载 妹子漏阴道不打码视频 国产自拍在线不用 女牛学生破处視频 9877h漫 七色沙耶香番号 最新国产自拍 福利视频在线播放 青青草永久在线视频2 日本性虐电影百度云 pppd 481 snis939在线播放 疯狂性爱小视频精彩合集推荐 各种爆操 各种场所 各式美女 各种姿势 各式浪叫 各种美乳 谭晓彤脱黑奶罩视频 青青草伊人 国内外成人免费影视 日本18岁黄片 sese820 无码中文字幕在线播放2 - 百度 成语在线av 奇怪美发沙龙店2莉莉影院 1人妻在线a免费视频 259luxu在线播放 大香蕉综合伊人网在线影院 国模 在线视频 国产 同事 校园 在线 浪荡女同做爱 healthonline899 成人伦理 mp4 白合野 国产 迅雷 2018每日在线女优AV视频 佳AV国产AV自拍日韩AV视频 色系里番播放器 有没有在线看萝莉处女小视频的网站 高清免费视频任你搞伦理片 温泉伦理按摸无码 PRTD-003 时间停止美容院 计女影院 操大白逼baby操作粉红 ak影院手机版 91老司机sm 毛片基地成人体验区 dv1456 亚洲无限看片区图片 abp582 ed2k 57rrrr新域名 XX局长饭局上吃饱喝足叫来小情人当众人面骑坐身上啪啪 欲脱衣摸乳给众人看 超震撼 处女在线免费黄色视频 大香巨乳家政爱爱在线 吹潮野战 处女任务坉片 偷拍视频老夫妻爱爱 yibendaoshipinzhaixian 小川阿佐美再战 内人妻淫技 magnet 高老庄八戒影院 xxxooo日韩 日韩av12不卡超碰 逼的淫液 视频 黎明之前 ftp 成人电影片偷拍自拍 久久热自拍偷在线啪啪无码 2017狼人干一家人人 国产女主播理论在线 日本老黄视频网站 少妇偷拍点播在线 污色屋在线视频播放 狂插不射 08新神偷古惑仔刷钱BUG 俄罗斯强姦 在线播放 1901福利性爱 女人59岁阴部视频 国产小视频福利在线每天更新 教育网人体艺术 大屁股女神叫声可射技术太棒了 在线 极品口暴深喉先锋 操空姐比 坏木啪 手机电影分分钟操 jjzyjj11跳转页 d8视频永久视频精品在线 757午夜视频第28集 杉浦花音免费在线观看 学生自拍 香蕉视频看点app下载黄色片 2安徽庐江教师4P照片 快播人妻小说 国产福二代少妇做爱在线视频 不穿衣服的模特58 特黄韩国一级视频 四虎视频操逼小段 干日本妇妇高清 chineseloverhomemade304 av搜搜福利 apaa-186 magnet 885459com63影院 久久免费视怡红院看 波多野结衣妻ネトリ电影 草比视频福利视频 国人怡红院 超碰免费chaopeng 日本av播放器 48qa,c 超黄色裸体男女床上视频 PPPD-642 骑马乳交插乳抽插 JULIA 最后是厉害的 saob8 成人 inurl:xxx 阴扩 成八动漫AV在线 shawty siri自拍在线 成片免费观看大香蕉 草莓100社区视频 成人福利软件有哪些 直播啪啪啪视频在线 成人高清在线偷拍自拍视频网站 母女午夜快播 巨乳嫩穴影音先锋在线播放 IPZ-692 迅雷 哺乳期天天草夜夜夜啪啪啪视频在线 孩子放假前与熟女的最后一炮 操美女25p freex性日韩免费视频 rbd888磁力链接 欧美美人磁力 VR视频 亚洲无码 自拍偷拍 rdt在线伦理 日本伦理片 希崎杰西卡 被迫服从我的佐佐凌波在线观看 葵つか步兵在线 东方色图, 69堂在线视频 人人 abp356百度云 江媚玲三级大全 开心色导 大色哥网站 韩国短发电影磁力 美女在线福利伦理 亚洲 欧美 自拍在线 限制级福利视频第九影院 美女插鸡免得视频 泷泽萝拉第四部第三部我的邻居在线 色狼窝综合 美国少妇与水电工 火影忍者邪恶agc漫画纲手邪恶道 近亲乱伦视频 金卡戴珊视频门百度云 极虎彯院 日本 母乳 hd 视频 爆米花神马影院伦理片 国产偷拍自拍丝袜制服无码性交 璩美凤光碟完整版高清 teen萝莉 国产小电影kan1122 日日韩无码中文亚洲在线视频六区第6 黄瓜自卫视频激情 红番阔午夜影院 黄色激情视频网视频下载 捆梆绳模羽洁视频 香蕉视频页码 土豆成人影视 东方aⅴ免费观看p 国内主播夫妻啪啪自拍 国内网红主播自拍福利 孩子强奸美女软件 廿夜秀场面业影院 演员的诞生 ftp 迷奸系列番号 守望人妻魂 日本男同调教播放 porn三级 magnet 午夜丁香婷婷 裸卿女主播直播视频在线 ac制服 mp4 WWW_OSION4YOU_COM 90后人体艺术网 狠狠碰影音先锋 美女秘书加班被干 WWW_BBB4444_COM vv49情人网 WWW_XXX234_COM 黄色xxoo动态图 人与动物性交乱伦视频 屄彩图