小编use*_*906的帖子

检查变量是否在R中递增

假设我有一个变量

x <- c(1,3,5,7,8)
Run Code Online (Sandbox Code Playgroud)

现在x正在增加秩序

如何检查变量是否在R中递增?

sorting r

7
推荐指数
3
解决办法
1106
查看次数

在列中查找具有重复值的行

我有一张桌子author_data:

 author_id | author_name
 ----------+----------------
 9         | ernest jordan
 14        | k moribe
 15        | ernest jordan
 25        | william h nailon 
 79        | howard jason
 36        | k moribe
Run Code Online (Sandbox Code Playgroud)

现在我需要结果如下:

 author_id | author_name                                                  
 ----------+----------------
 9         | ernest jordan
 15        | ernest jordan     
 14        | k moribe 
 36        | k moribe
Run Code Online (Sandbox Code Playgroud)

也就是说,我需要author_id具有重复外观的名称.我试过这句话:

select author_id,count(author_name)
from author_data
group by author_name
having count(author_name)>1
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我怎么能得到这个?

sql postgresql aggregate-functions duplicates window-functions

5
推荐指数
1
解决办法
6721
查看次数

按组按降序连接值

我想要一个数据.我的数据看起来像

author_id paper_id prob
   731    24943    1
   731    24943    1
   731   688974    1
   731   964345    .8
   731  1201905    .9
   731  1267992    1
   736    249      .2
   736   6889      1
   736   94345    .7
   736  1201905    .9
   736  126992    .8
Run Code Online (Sandbox Code Playgroud)

我希望的输出是:

author_id    paper_id
  731        24943,24943,688974,1201905,964345
  736        6889,1201945,126992,94345,249
Run Code Online (Sandbox Code Playgroud)

即paper_id根据概率的降序排列.

如果我使用sql和R的组合,我认为解决方案将是

statement<-"select * from A 
            GROUP BY author_id
            ORDER BY prob"
Run Code Online (Sandbox Code Playgroud)

然后在R中使用粘贴一次为paper_id设置顺序.

但是我需要R.的完整解决方案.这可以做到吗?

谢谢

r plyr data.table

3
推荐指数
2
解决办法
374
查看次数

在R中合并保留数据集的所有行

我有两个数据帧

distinct_paper_year_data:

author_id      distinct_paper_year_count
     1                         3
     2                         1
     4                         1
     5                         4 
Run Code Online (Sandbox Code Playgroud)

author_data:

author_id    paper_id  confirmed
   1         25733         1
   2         47276         1
   3         79468         1
   4         12856         0
Run Code Online (Sandbox Code Playgroud)

现在我想合并,以便所需的输出如下所示:

author_id  paper_id     confirmed    distinct_paper_year_count
 1            25733          1               3
 2            47276          1               1 
 3            79468          1               0  
 4            12856          0               4
Run Code Online (Sandbox Code Playgroud)

在这里我需要author_id表中的s author_data在最终输出中.由于author_id==3在distinct_paper_year_count中没有数据,因此distinct_paper_year_count在最终结果(for author_id==3)中列的值应为零.

通过使用合并我得到

   merge(distinct_paper_year_data,author_data,by="author_id") 

author_id    distinct_paper_year_count paper_id confirmed
     1                         3       25733         1
     2                         1       47276         1
     4                         1       12856         0
Run Code Online (Sandbox Code Playgroud)

如何获得所需的输出?

merge r

3
推荐指数
1
解决办法
3万
查看次数

在R中找不到缺少数据的行

我有一个数据框

Id  Name                      Affiliation
9   Ernest Jordan   
14  K. MORIBE   
15  D. Jakominich   
25  William H. Nailon   
37  P. B. Littlewood      Cavendish Laboratory|Cambridge University
44  A. Kuroiwa            Department of Molecular Biology|School of Science|Nagoya 
75  M. Till-berg    
Run Code Online (Sandbox Code Playgroud)

我想知道有多少行是不完整的,即缺少数据.在这种情况下,ID(9,14,15,25,75)的行有关联.所以在这种情况下结果应该是5.

我试过了

dim(author_data[complete.cases(author_data),])
Run Code Online (Sandbox Code Playgroud)

但它没有显示正确的结果.它输出为

7  3
Run Code Online (Sandbox Code Playgroud)

即7行3列

谢谢

r missing-data dataframe

1
推荐指数
1
解决办法
4291
查看次数

通过sql检索重复记录

我有一个像这样的数据

paper Id Author Id  

1          15
2          13 
3          12
3          11 
4          10
4          10
4          9 
Run Code Online (Sandbox Code Playgroud)

我想选择有多位作者的论文.所以我的数据应该是这样的

paper Id   Author Id
3            12
3            11
4            10
4             9
Run Code Online (Sandbox Code Playgroud)

我试过用SQL查询:

statement<-"SELECT PaperId,AuthorId,COUNT(PaperId) 
            FROM author_data_pap_aut
            GROUP BY PaperId,AuthorId
            HAVING ( COUNT(*) >1 )"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我怎样才能得到理想的结果

谢谢

sql

0
推荐指数
1
解决办法
61
查看次数