五月天婷亚洲天久久综合网,婷婷丁香五月激情亚洲综合,久久男人精品女人,麻豆91在线播放

  • <center id="8gusu"></center><rt id="8gusu"></rt>
    <menu id="8gusu"><small id="8gusu"></small></menu>
  • <dd id="8gusu"><s id="8gusu"></s></dd>
    樓主: leo1122
    4801 8

    [有償編程] 用R語言編程求三個(gè)xls表格中的交集部分,輸出一個(gè)新的表格 [推廣有獎(jiǎng)]

    • 0關(guān)注
    • 0粉絲

    碩士生

    18%

    還不是VIP/貴賓

    -

    威望
    0 級(jí)
    論壇幣
    1522 個(gè)
    通用積分
    0
    學(xué)術(shù)水平
    0 點(diǎn)
    熱心指數(shù)
    0 點(diǎn)
    信用等級(jí)
    0 點(diǎn)
    經(jīng)驗(yàn)
    642 點(diǎn)
    帖子
    25
    精華
    0
    在線時(shí)間
    238 小時(shí)
    注冊(cè)時(shí)間
    2012-4-25
    最后登錄
    2024-10-3

    樓主
    leo1122 發(fā)表于 2016-11-14 08:44:45 |只看作者 |壇友微信交流群|倒序 |AI寫論文
    10論壇幣
    現(xiàn)在有三個(gè)xls表格,表格1
    姓名性別年齡
    張三

    16

    李四

    17

    王二

    19

    小王

    17

    小明

    18

    小張

    16

    表格2
    姓名身高體重
    張三

    1.51

    50

    李四

    1.52

    51

    王二

    1.53

    52

    小李

    1.55

    54

    表格3
    姓名語文數(shù)學(xué)
    張三

    70

    80

    李四

    71

    82

    小李

    72

    84

    小元

    73

    86



    用R語言編程求三個(gè)xls表格中的交集部分,輸出一個(gè)新的表格4
    表格4
    姓名性別年齡身高體重語文數(shù)學(xué)
    張三

    16

    1.51

    50

    70

    80

    李四

    16

    1.52

    51

    71

    82



    希望各位編程高手多多幫助,多謝!




    最佳答案

    飛天玄舞6 查看完整內(nèi)容

    fir 姓名 性別 年齡 1 張三 男 16 2 李四 男 17 3 王二 男 19 4 小王 男 17 5 小明 女 18 6 小張 女 16 sec 姓名 身高 體重 1 張三 151 50 2 李四 152 51 3 王二 153 52 4 小李 155 54 thi 姓名 語文 數(shù)學(xué) 1 張三 70 80 2 李四 71 82 3 小李 72 84 4 小圓 73 86 a 姓名 性別 年齡 身高 體重 1 李四 男 17 152 51 2 王二 男 19 ...
    關(guān)鍵詞:R語言編程 語言編程 R語言 xls 編程高手 語言編程 數(shù)學(xué) 姓名 語文
    沙發(fā)
    飛天玄舞6 發(fā)表于 2016-11-14 08:44:46 |只看作者 |壇友微信交流群
    ly_0 發(fā)表于 2016-11-14 17:24
    用兩遍merge()函數(shù),順便問一下,為什么我的R里所有中文都是亂碼?【同為新手】
    1. fir <- read.csv("fir.csv",stringsAsFactors = F)
    2. sec <-read.csv("sec.csv",stringsAsFactors = F)
    3. thi <- read.csv("thi.csv",stringsAsFactors = F)
    4. a <-merge(fir,sec,by="姓名",all=F)
    5. b <- merge(a,thi, by="姓名",all=F)
    復(fù)制代碼
    fir
      姓名 性別 年齡
    1 張三   男   16
    2 李四   男   17
    3 王二   男   19
    4 小王   男   17
    5 小明   女   18
    6 小張   女   16
    sec
      姓名 身高 體重
    1 張三  151   50
    2 李四  152   51
    3 王二  153   52
    4 小李  155   54
    thi
      姓名 語文 數(shù)學(xué)
    1 張三   70   80
    2 李四   71   82
    3 小李   72   84
    4 小圓   73   86
    a
      姓名 性別 年齡 身高 體重
    1 李四   男   17  152   51
    2 王二   男   19  153   52
    3 張三   男   16  151   50
    b
      姓名 性別 年齡 身高 體重 語文 數(shù)學(xué)
    1 李四   男   17  152   51   71   82
    2 張三   男   16  151   50   70   80
    藤椅
    飛天玄舞6 發(fā)表于 2016-11-14 11:39:46 |只看作者 |壇友微信交流群
    用fir、sec和thi分別代表1,2,3個(gè)數(shù)據(jù),則:
    1. fir <- read.csv("fir.csv",stringsAsFactors = F)
    2. sec <-read.csv("sec.csv",stringsAsFactors = F)
    3. thi <- read.csv("thi.csv",stringsAsFactors = F)
    4. fun <- function(fir,sec,thi){
    5. for(i in 1:length(fir$姓名)){
    6.   for(j in 1:length(sec$姓名)){
    7.     for(k in 1:length(thi$姓名)){
    8.       if(fir$姓名[i]==sec$姓名[j] & sec$姓名[j]==thi$姓名[k]){
    9.         p <- cbind(fir[i,],sec[j,][,-1],thi[k,][,-1])

    10.       }
    11.     }
    12.   }
    13.   return(p)
    14. }
    15. }
    復(fù)制代碼

    但是不知為什么,只是出來一行,還有一行數(shù)據(jù)沒有檢索出,希望有網(wǎng)友能指出錯(cuò)誤并提出解決的辦法.
    已有 1 人評(píng)分論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    leo1122 + 5 + 1 + 1 + 1 精彩帖子

    總評(píng)分: 論壇幣 + 5  學(xué)術(shù)水平 + 1  熱心指數(shù) + 1  信用等級(jí) + 1   查看全部評(píng)分

    strive for the best, prepare for the worst.
    板凳
    leo1122 發(fā)表于 2016-11-14 15:47:44 |只看作者 |壇友微信交流群
    飛天玄舞6 發(fā)表于 2016-11-14 11:39
    用fir、sec和thi分別代表1,2,3個(gè)數(shù)據(jù),則:

    但是不知為什么,只是出來一行,還有一行數(shù)據(jù)沒有檢索出,希 ...
    非常感謝,這個(gè)腳本的確只能羅列搜索一個(gè)結(jié)果,還有沒有函數(shù)把所有的都能羅列下來呢?導(dǎo)致這種結(jié)果好像是生成的i一直替換前一個(gè)結(jié)果而導(dǎo)致只顯示最后一個(gè)結(jié)果,不能顯示所有結(jié)果,感覺用list函數(shù)可以彌補(bǔ)這個(gè)缺點(diǎn),但是一直沒成功,不知道還有沒有更好的函數(shù)解決這個(gè)問題
    報(bào)紙
    ly_0 發(fā)表于 2016-11-14 17:24:13 |只看作者 |壇友微信交流群
    用兩遍merge()函數(shù),順便問一下,為什么我的R里所有中文都是亂碼?【同為新手】
    1. fir <- read.xlsx("test.xlsx",1,h=T)
    2. sec <- read.xlsx("test.xlsx",2,h=T)
    3. thi <- read.xlsx("test.xlsx",3,h=T)
    4. fir
    5.    Name Gender Age
    6. 1 zhang      1  16
    7. 2    li      1  17
    8. 3  wang      2  18
    9. sec
    10.    Name Height weight
    11. 1 zhang   1.51     50
    12. 2    li   1.52     51
    13. 3  wang   1.53     52
    14. thi
    15.    Name Math Language
    16. 1 zhang   90       85
    17. 2    li   91       86
    18. 3  wang   92       87
    19. com_0 <- merge(fir,sec,by="Name",all=F)
    20. com_0
    21.    Name Gender Age Height weight
    22. 1    li      1  17   1.52     51
    23. 2  wang      2  18   1.53     52
    24. 3 zhang      1  16   1.51     50
    25. com_1 <- merge(com_0,thi,by="Name",all=F)
    26. com_1
    27.    Name Gender Age Height weight Math Language
    28. 1    li      1  17   1.52     51   91       86
    29. 2  wang      2  18   1.53     52   92       87
    30. 3 zhang      1  16   1.51     50   90       85
    復(fù)制代碼


    也可以在R中調(diào)用sqldf包用sql去做,但是太麻煩了。。。。
    已有 2 人評(píng)分論壇幣 學(xué)術(shù)水平 熱心指數(shù) 信用等級(jí) 收起 理由
    leo1122 + 5 + 1 + 1 + 1 精彩帖子
    飛天玄舞6 + 5 + 1 + 1 觀點(diǎn)有啟發(fā)

    總評(píng)分: 論壇幣 + 10  學(xué)術(shù)水平 + 2  熱心指數(shù) + 2  信用等級(jí) + 1   查看全部評(píng)分

    地板
    飛天玄舞6 發(fā)表于 2016-11-14 18:12:36 |只看作者 |壇友微信交流群
    ly_0 發(fā)表于 2016-11-14 17:24
    用兩遍merge()函數(shù),順便問一下,為什么我的R里所有中文都是亂碼?【同為新手】
    你可能字符串變成因子了,試試讀取文件的時(shí)候加上stringsAsFactors=F.
    7
    leo1122 發(fā)表于 2016-11-14 23:05:22 |只看作者 |壇友微信交流群
    謝謝各位,辛苦啦!
    8
    jameschin007 發(fā)表于 2016-11-15 22:54:41 |只看作者 |壇友微信交流群
    作為IT出身的, 這種問題,用sqldf 最簡單。 三個(gè)數(shù)據(jù)集 分別是 a,b,c   
    select a.姓名, a.col2, a.col3, b.col2,b.col3, c.col2,c.col from a join b on a.name=b.name join c on a.name=c.name
    9
    iristaw 發(fā)表于 2017-8-3 14:36:33 |只看作者 |壇友微信交流群
    其實(shí)可以不用寫諸如merge循環(huán)的程序,可以用R里的dplyr包,里面的join系列,提供了管道函數(shù):%>%,通過%>%將上一個(gè)函數(shù)的輸出作為下一個(gè)函數(shù)的輸入,是dplyr包中特有的管道函數(shù)。
    詳細(xì)方法如下:
    如果你要實(shí)現(xiàn)三個(gè)表合并(按照某列值匹配)
    表格4 <- inner_join(x = 表格1, y = 表格2, by = '匹配列名') %>% inner_join(表格3,by='匹配列名')
    若實(shí)現(xiàn)其他匹配,用其他join組合即可。

    本版微信群
    加好友,備注cda
    拉您進(jìn)交流群

    京ICP備16021002-2號(hào) 京B2-20170662號(hào) 京公網(wǎng)安備 11010802022788號(hào) 論壇法律顧問:王進(jìn)律師 知識(shí)產(chǎn)權(quán)保護(hù)聲明   免責(zé)及隱私聲明

    GMT+8, 2024-12-23 04:06