精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

R語言進階之5:表達式、數學公式與特殊符號

大數據
在R語言的繪圖函數中,如果文本參數是合法的R語言表達式,那么這個表達式就被用Tex類似的規則進行文本格式化。
  1. <- function(x) log(x) + sqrt(x) + x^(1/3) 
  2. lot(y, 1, 1000, main = expression(y == log(x) + sqrt(x) + sqrt(x, 3)), lwd = 3,  
  3.    col = "blue"

R語言進階之五:表達式、數學公式與特殊符號 - xxx - xxx的博客

一、R語言的“表達式”

在R語言中,“表達式”的概念有狹義和廣義兩種意義。狹義的表達式指表達式(expression)類對象,由expression函數產生;而廣義的的表達式既包含expression類,也包含R“語言”類(language)。expression和language是R語言中兩種特殊數據類:

  1. getClass("expression") 
  2. ## Class "expression" [package "methods"] 
  3. ##  
  4. ## No Slots, prototype of class "expression" 
  5. ##  
  6. ## Extends: "vector" 
  7. getClass("language") 
  8. ## Virtual Class "language" [package "methods"] 
  9. ##  
  10. ## No Slots, prototype of class "name" 
  11. ##  
  12. ## Known Subclasses:  
  13. ## Class "name", directly 
  14. ## Class "call", directly 
  15. ## Class "{", directly 
  16. ## Class "if", directly 
  17. ## Class "<-", directly 
  18. ## Class "for", directly 
  19. ## Class "while", directly 
  20. ## Class "repeat", directly 
  21. ## Class "(", directly 
  22. ## Class ".name", by class "name", distance 2, with explicit coerce 

可以看到expression類由向量派生得到,而language類是虛擬類,它包括我們熟悉的程序控制關鍵詞/符號和name、call 子類。

二、產生“表達式”的函數

雖然我們在R終端鍵入的任何有效語句都是表達式,但這些表達式在輸入后即被求值(evaluate)了,獲得未經求值的純粹“表達式”就要使用函數。下面我們從函數參數和返回值兩方面了解expression、quote、bquote和substitute這幾個常用函數。

1、expression 函數

expression函數可以有一個或多個參數,它把全部參數當成一個列表,每個參數都被轉成一個表達式向量,所以它的返回值是表達式列表,每個元素都是表達式類型對象,返回值的長度等于參數的個數:

  1. (ex <- expression(x = 1, 1 + sqrt(a))) 
  2. ## expression(x = 1, 1 + sqrt(a)) 
  3. length(ex) 
  4. ## [1] 2 
  5. ex[1] 
  6. ## expression(x = 1
  7. mode(ex[1]) 
  8. ## [1] "expression" 
  9. typeof(ex[1]) 
  10. ## [1] "expression" 
  11. ex[2] 
  12. ## expression(1 + sqrt(a)) 
  13. mode(ex[2]) 
  14. ## [1] "expression" 
  15. typeof(ex[2]) 
  16. ## [1] "expression" 

因為expression函數把參數當成列表處理,所以等號‘=’兩邊的表達式要符合R語言列表元素的書寫規則,否則出錯,比如:

 

  1. expression(x+11=1) 

2、quote函數

quote函數只能有一個參數。quote函數的返回值一般情況下是call類型,表達式參數是單個變量的話返回值就是name類型,如果是常量那么返回值的存儲模式就和相應常量的模式相同:

  1. (cl <- quote(1 + sqrt(a) + b^c)) 
  2. ## 1 + sqrt(a) + b^c 
  3. mode(cl) 
  4. ## [1] "call" 
  5. typeof(cl) 
  6. ## [1] "language" 
  7. (cl <- quote(a)) 
  8. ## a 
  9. mode(cl) 
  10. ## [1] "name" 
  11. typeof(cl) 
  12. ## [1] "symbol" 
  13. (cl <- quote(1)) 
  14. ## [1] 1 
  15. mode(cl) 
  16. ## [1] "numeric" 
  17. typeof(cl) 
  18. ## [1] "double" 

quote返回值如果是name或常量類型,它的長度就是1;如果是call類型,返回值長度就與函數/運算符的參數個數n對應,長度等于n+1,多出的長度1是函數/符號名。

  1. length(quote(a))  #name或常量類型,返回值長度為1 
  2. ## [1] 1 
  3. length(quote(!a))  #單目運算符,返回值長度為2 
  4. ## [1] 2 
  5. length(quote(-b))  #單目運算符,返回值長度為2 
  6. ## [1] 2 
  7. length(quote(a + b))  #雙目運算符,返回值長度為3 
  8. ## [1] 3 
  9. length(quote((a + b) * c))  #多個運算符只算優先級最低的一個 
  10. ## [1] 3 

3、bquote 和 substitute 函數

如果不使用環境變量或環境變量參數,bquote 和 substitute 函數得到的結果與quote函數相同。

  1. bquote(1 + sqrt(a) + b^c) == quote(1 + sqrt(a) + b^c) 
  2. ## [1] TRUE 
  3. substitute(1 + sqrt(a) + b^c) == quote(1 + sqrt(a) + b^c) 
  4. ## [1] TRUE 

但是bquote 和 substitute 函數可以在表達式中使用變量,變量的值隨運行進程而被替換。bquote 和 substitute 函數變量替換的方式不一樣,bquote函數中需要替換的變量用 .( ) 引用,substitute函數中需要替換的變量用列表參數方式給出。除了這一點,bquote 和 substitute 函數沒有差別:

  1. a <- 3 
  2. b <- 2 
  3. (bq <- bquote(y == sqrt(.(a), .(b)))) 
  4. ## y == sqrt(3, 2) 
  5. (ss <- substitute(y == sqrt(a, b), list(a = 3, b = 2))) 
  6. ## y == sqrt(3, 2) 
  7. bq == ss 
  8. ## [1] TRUE 

搞出兩個功能完全一樣的函數不算很奇怪,R語言里面太多了,可能是照顧不同使用習慣的人們吧。bquote函數的幫助檔說這個函數類似于LISP的backquote宏,對于像我這樣的LISP盲,使用substitute函數好一些。 substitute函數的典型用途是替換表達式中的變量,如果我們希望在表達式中使用變量并且希望這些變量在運行過程中做出相應改變,就可以使用substitute函數。

  1. par(mar = rep(0.1, 4), cex = 2
  2. plot.new() 
  3. plot.window(c(0, 10), c(0, 1)) 
  4. for (i in 1:9) text(i, 0.5, substitute(sqrt(x, a), list(a = i + 1))) 

R語言進階之五:表達式、數學公式與特殊符號 - xxx - xxx的博客 

4、parse 函數

parse函數用于從文件讀取文本作為表達式,返回的值是expression類型,這函數也很有用。后面有例子。

三、表達式規則與paste函數:

與在R終端直接輸入的表達式不一樣,expression、quote、bquote和substitute等函數對參數中的(變量)名稱都不做任何檢查:

  1. <- 1 
  2. x + "x" 
  3. ## Error: 二進列運算符中有非數值參數 
  4. expression(x + "x") 
  5. ## expression(x + "x") 
  6. quote(x + "x") 
  7. ## x + "x" 

但R要檢查表達式中的運算符,不符合運算符使用規則的表達式將出錯:

  1. expression(x + +++y) 
  2. ## expression(x + +++y) 
  3. expression(x - ---y) 
  4. ## expression(x - ---y) 
  5. # expression(x****y) (Not run) expression(x////y) (Not run) 
  6. # expression(1<=x<=4) (Not run) 
  7. quote(x + +++y) 
  8. ## x + +++y 
  9. quote(x - ---y) 
  10. ## x - ---y 
  11. # quote(x****y) (Not run) quote(x////y) (Not run) quote(1<=x<=4) (Not run) 

+ - 運算連續使用不出錯是因為它們還可以當成求正/負值運算的符號。 在表達式產生函數中使用paste函數可以解決這樣的問題。在這種條件下,paste對參數的處理方式和表達式產生函數一樣,檢查運算符但不檢查變量名。用NULL作為運算符的參數可以獲得意外的效果:


  1. ex <- expression(paste(x, "////", y)) 
  2. cl <- quote(paste(x, "****", y)) 
  3. par(mar = rep(0.1, 4), cex = 2
  4. plot.new() 
  5. plot.window(c(0, 1.2), c(0, 1)) 
  6. text(0.2, 0.5, ex) 
  7. text(0.6, 0.5, cl) 
  8. cl <- quote(paste(1 <= x, NULL <= 4)) 
  9. text(1, 0.5, cl) 

R語言進階之五:表達式、數學公式與特殊符號 - xxx - xxx的博客 

四、R繪圖函數對文本參數中的表達式的處理

quote, bquote 和 substitute 的返回值有三種類型call, name 和 常量,事實上expression 函數的結果最終也是這三種類型。因為expression函數的結果是expression列表,我們取列表元素的值檢查看看:

 
  1. (ex <- expression(1 + sqrt(x), x, 1)) 
  2. ## expression(1 + sqrt(x), x, 1) 
  3. ex[[1]] 
  4. ## 1 + sqrt(x) 
  5. mode(ex[[1]]) 
  6. ## [1] "call" 
  7. typeof(ex[[1]]) 
  8. ## [1] "language" 
  9. ex[[2]] 
  10. ## x 
  11. mode(ex[[2]]) 
  12. ## [1] "name" 
  13. typeof(ex[[2]]) 
  14. ## [1] "symbol" 
  15. ex[[3]] 
  16. ## [1] 1 
  17. mode(ex[[3]]) 
  18. ## [1] "numeric" 
  19. typeof(ex[[3]]) 
  20. ## [1] "double" 
確實是這樣。所以繪圖函數對文本參數中的表達式處理就有三種情況。先看看處理結果:
  1. par(mar = rep(0.1, 4), cex = 2
  2. plot.new() 
  3. plot.window(c(0, 1.2), c(0, 1)) 
  4. text(0.2, 0.5, ex[1]) 
  5. text(0.6, 0.5, ex[2]) 
  6. text(1, 0.5, ex[3]) 
R語言進階之五:表達式、數學公式與特殊符號 - xxx - xxx的博客

name 和常量類型都很簡單,直接輸出文本,而call類型就不好判斷了。我們前面說過call類型返回值的長度與函數/運算符的參數個數有關。這是怎么體現的呢?由于文本參數最終得到的是文本,我們用as.character函數來看看:

  1. as.character(quote(x - y)) 
  2. ## [1] "-" "x" "y" 
  3. as.character(quote(1 - x + y)) 
  4. ## [1] "+"     "1 - x" "y" 
  5. as.character(quote((1 + x) * y)) 
  6. ## [1] "*"       "(1 + x)" "y" 
  7. as.character(quote(!a)) 
  8. ## [1] "!" "a" 
  9. as.character(quote(sqrt(x))) 
  10. ## [1] "sqrt" "x" 

轉換成字符串向量后排在第一位的是運算符或函數名稱,后面是參數(如果參數中還有運算符或函數名,R還會對其進行解析)。運算符和函數是相同的處理方式。事實上,在R語言中,所有運算符(包括數學運算符和邏輯運算符)都是函數,你可以用函數的方式使用運算符:


  1. 2 + 4 
  2. ## [1] 6 
  3. 2 - 4 
  4. ## [1] -2 
  5. <= 4 
  6. ## [1] TRUE 
  7. >= 4 
  8. ## [1] FALSE 

R繪圖函數對表達式中包含的函數名和它們的參數首先應用Tex文本格式化規則進行處理,這種規則的具體情況可以使用 ?plotmath 進行查看,主要是一些數學公式和符號的表示方法。把這個說明文檔中字符串拷貝到maths.txt文件中并保存到當前工作目錄后可以用下面的代碼做出后面的表格:


  1. ex <- parse("maths.txt") 
  2. labs <- readLines("maths.txt") 
  3. <- length(ex) 
  4. par(mar = rep(0.1, 4), cex = 0.8) 
  5. plot.new() 
  6. plot.window(c(0, 8), c(0, n/4)) 
  7. <- seq(n/4, by = -1, length = n/4) 
  8. <- seq(0.1, by = 2length = 4
  9. xy <- expand.grid(x, y) 
  10. text(xy, labs, adj = c(0, 0.5)) 
  11. xy <- expand.grid(x + 1.3, y) 
  12. text(xy, ex, adj = c(0, 0.5), col = "blue"
  13. box(lwd = 2
  14. abline(v = seq(1.3, by = 2length = 4), lty = 3
  15. abline(v = seq(2, by = 2length = 3), lwd = 1.5) 

R語言進階之五:表達式、數學公式與特殊符號 - xxx - xxx的博客

 表中奇數列是字符串(表達式),偶數列(藍色)是Tex格式化的圖形。除了上表列出的規則外還有一些拉丁文和希臘文符號,可以在表達式中用 symbol 函數或名稱(如alpha)等表示,用到時自己去找吧。 如果函數名(包括運算符)有對應的Tex格式化規則,函數名和參數都按規則進行圖形繪制;如果沒有,就當成是R語言普通函數:

  1. ex <- expression(sqrt(x), x + y, x^2, x %in% A, x <= y, mean(x, y, z), x | y,  
  2.     x & y) 
  3. <- length(ex) 
  4. par(mar = rep(0.1, 4), cex = 1.5) 
  5. col <- c("red", "blue") 
  6. plot.new() 
  7. plot.window(c(0, n), c(0, 1)) 
  8. for (i in 1:n) text(i - 0.5, 0.5, ex[i], colcol = col[i%%2 + 1]) 

R語言進階之五:表達式、數學公式與特殊符號 - xxx - xxx的博客

上面例子中前5種運算函數都是有對應數學符號的,所以它出的圖(符號和順序)與數學習慣一致,后三種運算函數沒有對應數學符號,所以用普通函數方式(函數名在前,參數在括號內用逗號分隔)出圖。其他還有一些瑣碎的規則,自己找找吧。

原文鏈接:http://helloxxxxxx.blog.163.com/blog/static/21601509520134365451828/

【編輯推薦】

1.R語言學習筆記(1):R是什么

1.R語言學習筆記(2):數據類型和數據結構

 

責任編輯:彭凡 來源: 網易博客
相關推薦

2010-03-11 17:57:48

Python正則表達式

2013-05-15 13:32:16

R語言

2013-09-27 09:43:44

Linux Shell腳本數學表達式

2017-04-27 08:19:56

Markdown數學公式

2014-08-01 17:12:14

Linux特殊符號

2009-08-20 13:09:28

C#正則表達式

2024-09-23 20:00:00

正則表達式Python

2009-08-20 13:38:58

C#正則表達式

2009-12-17 10:39:01

Ruby數學表達式

2023-12-13 10:12:40

Python函數lambda

2010-06-23 17:21:30

Linux Bash

2021-08-07 07:21:26

AndroidKotlinLambda

2017-05-12 10:47:45

Linux正則表達式程序基礎

2024-03-25 13:46:12

C#Lambda編程

2009-04-22 15:06:16

正則表達式PHP特殊字符

2013-01-05 02:19:50

JavaLambda表達式JVM

2020-06-24 08:07:32

5G網絡智慧城市

2009-09-16 09:58:53

PHP正則表達式函數

2014-01-05 17:41:09

PostgreSQL表達式

2009-06-08 16:49:05

Java正則表達式group
點贊
收藏

51CTO技術棧公眾號

免费观看成人www动漫视频| 欧美日韩欧美| 日韩av一区二区在线影视| 自拍偷拍免费精品| 中文字幕第九页| 香蕉久久免费电影| 亚洲人成网站影音先锋播放| 狠狠色综合色区| 91theporn国产在线观看| 亚洲大黄网站| 日韩在线中文字幕| 国产 中文 字幕 日韩 在线| 自拍偷拍欧美日韩| 日韩欧美aⅴ综合网站发布| 欧美性视频在线播放| 天堂成人在线| 国产激情91久久精品导航| 国产精品99久久久久久久久久久久| 希岛爱理中文字幕| 国产va免费精品观看精品视频| 日韩午夜在线观看视频| 久久综合伊人77777麻豆最新章节| 欧美人与禽性xxxxx杂性| 欧美高清在线一区二区| 久久国产精品一区二区三区 | 日韩欧美在线免费观看| 2021国产视频| 男人天堂手机在线视频| 国产成a人亚洲精v品无码 | 欧美一区二区三区免费观看| 卡通动漫亚洲综合| 久久国产电影| 在线观看国产精品91| 亚洲熟女乱综合一区二区三区| 天堂va在线高清一区| 欧美日韩日本视频| 日韩一级理论片| 日韩影院在线| 欧美日韩国产一区二区| 免费无码毛片一区二三区| 日韩av毛片| 亚洲精品欧美在线| 久久观看最新视频| av网站网址在线观看| 国产精品电影一区二区三区| 天堂√在线观看一区二区| 猫咪在线永久网站| 国产色产综合产在线视频| 人偷久久久久久久偷女厕| 手机亚洲第一页| 2017欧美狠狠色| 欧美日韩精品不卡| 国产污视频在线| 国产女人aaa级久久久级| 日本一区高清在线视频| 成年网站在线| 国产精品久久二区二区| 日本黄色播放器| 成年人黄视频在线观看| 一区二区三区欧美在线观看| 国产成人一区二区三区别| www.综合网.com| 午夜精品久久久久久久久久久| 超碰成人免费在线| 免费在线小视频| 欧美日韩在线视频一区| 北条麻妃视频在线| 粉嫩一区二区三区在线观看| 日韩精品一区二区在线观看| fc2成人免费视频| 伊人久久大香线蕉综合网蜜芽 | 国产高清精品在线观看| 中文在线a天堂| 精品一区二区免费在线观看| 51精品国产人成在线观看| 亚洲免费成人网| 久久久久高清精品| 欧美精品一区二区性色a+v| 日本动漫同人动漫在线观看| 亚洲成人免费av| 又色又爽又高潮免费视频国产| 激情久久99| 欧美一级在线观看| 亚洲国产精品无码久久久久高潮| 精品毛片免费观看| 欧美理论电影在线观看| 一级成人黄色片| 蜜桃视频在线观看一区| 国产成人一区二区三区免费看| 天堂中文在线视频| 亚洲人一二三区| 国产精品秘入口18禁麻豆免会员| 最新欧美电影| 欧美一二三四在线| 国产三级视频网站| 香港欧美日韩三级黄色一级电影网站| 欧美极品美女电影一区| 日本三级一区二区三区| 豆国产96在线|亚洲| 日韩视频专区| 国产一线二线在线观看| 欧美日韩五月天| 在线视频 日韩| 欧美高清视频手机在在线| 26uuu久久噜噜噜噜| 国产精品乱码久久久| 91视频com| 91视频 - 88av| 日本一区二区电影| 亚洲精品中文字幕有码专区| 黄色一级片在线免费观看| 日韩高清国产一区在线| 精品久久久久久中文字幕动漫| 黄色网页在线看| 91激情在线视频| 国产又粗又猛又色| 午夜日韩福利| 国产精品爽爽爽爽爽爽在线观看| 日韩在线观看视频一区二区三区| 免费黄网站在线播放| 国产精品久久久久影院亚瑟| 波多野结衣50连登视频| 视频一区日韩精品| 久久久精品久久久久| 亚洲中文无码av在线| 91免费在线播放| 无罩大乳的熟妇正在播放| 美女久久精品| 久久深夜福利免费观看| 国产精品成人aaaa在线| 狠狠色丁香九九婷婷综合五月| 先锋影音日韩| 成人在线中文| 中文字幕亚洲一区二区三区五十路 | 成人久久久久| 国产精品电影网站| 国产精品久久久久久久龚玥菲| 精品久久久久久亚洲国产300| 亚洲av熟女高潮一区二区| 欧美三级不卡| 超碰97网站| √天堂8资源中文在线| 精品成人一区二区三区四区| 国产亚洲第一页| 成人av在线看| 三上悠亚久久精品| 日韩高清电影免费| 青青草一区二区| 激情在线视频| 欧美色男人天堂| 999精品视频在线观看播放| 日本在线观看不卡视频| 性欧美.com| 一区在线不卡| 欧美日韩福利在线观看| 丰满少妇高潮在线观看| 亚洲成a人片在线观看中文| 久久久国产精品无码| 亚洲一区久久| 日韩电影在线播放| 欧美jizz18| 美女av一区二区| 亚洲精品久久久久久久久久| 天天爽夜夜爽夜夜爽精品视频| 国产精品探花一区二区在线观看| 日韩专区一卡二卡| 99热这里只有精品7| 熟女av一区二区| 精品五月天堂| 欧美一区二区三区图| yiren22亚洲综合伊人22| 7799精品视频| 国产在线观看免费av| 久久婷婷久久一区二区三区| 亚洲人辣妹窥探嘘嘘| 欧美在线高清| 精品免费二区三区三区高中清不卡| 成人美女大片| 久久精品男人天堂| 四虎国产精品永远| 欧美福利一区二区| 特一级黄色大片| 中文字幕高清不卡| 黑森林av导航| 奇米精品一区二区三区在线观看一 | 国产三级电影在线| 91精品国产91热久久久做人人| 国产一级一片免费播放放a| 国产午夜精品美女毛片视频| 超级砰砰砰97免费观看最新一期| 99riav1国产精品视频| 亚洲国产一区二区三区在线播| 一级毛片精品毛片| 国产精品久久久亚洲| 美女网站视频在线| 中文字幕亚洲一区| 无码国产精品一区二区色情男同| 7777精品伊人久久久大香线蕉 | 国产欧美日韩一区二区三区在线| 性欧美.com| 日韩av中文字幕一区| 91久久国产婷婷一区二区| 深夜福利视频一区二区| 久久亚洲精品一区| 黄视频在线播放| 精品奇米国产一区二区三区| 中文字幕制服诱惑| 色悠久久久久综合欧美99| 欧美在线视频第一页| 国产日韩欧美一区二区三区综合| www日本在线观看| 免费成人你懂的| 久久久久久久激情| 亚洲视频一二| 蜜桃视频一区二区在线观看| 色喇叭免费久久综合| 日韩免费av电影| 欧美影院天天5g天天爽| 亚洲国产日韩在线一区模特| 大地资源网在线观看免费官网| 欧美日韩在线观看视频小说| 久久99精品久久久久久久青青日本 | 欧美日韩免费看| 久久久久久久久久久久国产| 亚洲色欲色欲www在线观看| 国内精品卡一卡二卡三| 91免费视频网| 久久久无码人妻精品一区| 成人精品国产一区二区4080| 国产xxx在线观看| 国产高清亚洲一区| 在线观看视频你懂得| 精品一区二区三区影院在线午夜| 污网站免费在线| 奇米色一区二区三区四区| 亚洲黄色小视频在线观看| 久久婷婷久久| 国产视频一区二区三区在线播放| 久久天堂精品| 色婷婷成人在线| 青青草精品视频| 在线观看国产中文字幕| 久久精品国产亚洲一区二区三区| 色播五月综合网| 久草热8精品视频在线观看| 精品综合久久久久| 国产一区美女在线| 国产欧美视频一区| 成人av资源在线| 亚洲天堂成人av| 久久久精品综合| 一二三四国产精品| 最新欧美精品一区二区三区| 免费看一级大片| 亚洲一区二区精品视频| 国产无遮挡呻吟娇喘视频| 欧美日韩亚洲一区二区| 精品久久久久久久久久久国产字幕| 欧美系列在线观看| 国产又色又爽又黄又免费| 日韩欧美中文字幕公布| 成人免费视频国产免费麻豆| 亚洲韩国日本中文字幕| 激情小视频在线| 久久精品视频一| 国产精品偷拍| 日韩免费中文字幕| 成人噜噜噜噜| 久久96国产精品久久99软件| jvid福利在线一区二区| 四虎免费在线观看视频| 亚洲福利一区| 亚洲高清在线免费观看| 国产一区二区三区四| 手机在线看片日韩| 中文一区在线播放| 精品在线视频免费观看| 日本久久一区二区三区| 欧美高清视频一区二区三区在线观看| 日本免费一区二区三区视频| 精品国产一区二区三区日日嗨| 日本激情一区| 妞干网视频在线观看| 视频一区欧美精品| 久久无码人妻一区二区三区| 91首页免费视频| 欧美 日韩 国产 一区二区三区| 精品久久久久久久久久久久久| 亚洲一卡二卡在线观看| 亚洲精品动漫久久久久| 天堂а√在线官网| 2019亚洲日韩新视频| 成人免费91| 欧洲亚洲一区| 激情综合自拍| 九一精品久久久| 91日韩在线专区| 欧美毛片在线观看| 欧美久久久久久蜜桃| 日本成人一区二区三区| 久久99热精品| 成人久久网站| 久久久久久亚洲精品不卡4k岛国| 亚洲精品一二三区区别| 99视频精品免费| 不卡视频免费播放| 日韩欧美综合视频| 欧美三级乱人伦电影| 午夜18视频在线观看| 欧美日韩国产成人在线| 亚洲欧洲一二区| 欧美在线激情| 国产一区成人| 欧洲熟妇的性久久久久久| 亚洲视频一区在线| 一级特黄免费视频| 国产丝袜一区二区三区| 成人影院在线播放| 99精品99久久久久久宅男| 四虎8848精品成人免费网站| 亚洲乱码国产一区三区| 91女厕偷拍女厕偷拍高清| 福利一区二区三区四区| 日韩三级电影网址| 手机在线免费看av| 91在线精品播放| 天天综合一区| 黄色小视频免费网站| 国产精品青草综合久久久久99| 色av性av丰满av| 国产视频在线一区二区| 卡通欧美亚洲| 久久精品中文字幕一区二区三区 | 色吊丝在线永久观看最新版本| 国内外成人免费激情在线视频| 亚洲国产中文在线| 欧美一区二区视频在线播放| 国产91丝袜在线观看| 男女免费视频网站| 日韩精品一区二区三区三区免费 | 亚洲另类色综合网站| 国产精品毛片久久久久久久av| 日韩在线观看免费高清| 亚洲图片小说区| 蜜臀av性久久久久蜜臀av| 国产综合久久久久影院| 国产精品久久久精品四季影院| 91精品国产综合久久蜜臀| 国产三区视频在线观看| www.成人av.com| 99精品国产在热久久| 五十路六十路七十路熟婆| 婷婷六月综合亚洲| 免费在线超碰| 国产精品一区二区久久精品| 999成人网| 国产精品日日摸夜夜爽| 精品久久久视频| 国产小视频免费在线观看| 国产精品日日摸夜夜添夜夜av| 国产精品精品| 亚洲AV成人精品| 五月婷婷久久丁香| 国产在线91| 亚洲一区二区三区乱码aⅴ| 国内精品99| 日韩av在线看免费观看| 欧美日韩1区2区| 久久青青色综合| 欧美韩国日本精品一区二区三区| 免播放器亚洲一区| 国产亚洲欧美精品久久久久久 | a毛片在线看免费观看| 国产伦视频一区二区三区| 久久亚洲精选| 日本在线一级片| 精品亚洲国产成av人片传媒| 久久精品xxxxx| 久久99中文字幕| 国产精品免费免费| 黄色小视频免费在线观看| 国产v综合ⅴ日韩v欧美大片| 欧美成人久久| 国产美女免费网站| 欧美成人video| 成人综合网站| 亚洲熟妇无码一区二区三区| 国产精品美日韩| 亚洲av成人无码网天堂| 91精品久久久久久久久久久| 一区二区国产精品| 男人与禽猛交狂配| 亚洲偷欧美偷国内偷| 亚洲精品一区二区三区中文字幕| 久草福利视频在线| 精品福利在线观看| 中文国产字幕在线观看| 日韩电影天堂视频一区二区| 99久久伊人网影院| jlzzjlzz亚洲女人18|