小编Tal*_*ili的帖子

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

如何使用R(Rcurl/XML包?!)来抓取这个网页?

我有一个(有点复杂的)网络抓取挑战,我希望完成,并希望在某个方向(你想分享的任何级别)这里:

我想通过此链接中的所有"物种页面":

http://gtrnadb.ucsc.edu/

所以对于他们每个人我会去:

  1. 物种页面链接(例如:http://gtrnadb.ucsc.edu/Aero_pern/)
  2. 然后到"二级结构"页面链接(例如:http://gtrnadb.ucsc.edu/Aero_pern/Aero_pern-structs.html)

在该链接中,我希望废弃页面中的数据,以便我将有一个包含此数据的长列表(例如):

chr.trna3 (1-77)    Length: 77 bp
Type: Ala   Anticodon: CGC at 35-37 (35-37) Score: 93.45
Seq: GGGCCGGTAGCTCAGCCtGGAAGAGCGCCGCCCTCGCACGGCGGAGGcCCCGGGTTCAAATCCCGGCCGGTCCACCA
Str: >>>>>>>..>>>>.........<<<<.>>>>>.......<<<<<.....>>>>>.......<<<<<<<<<<<<....
Run Code Online (Sandbox Code Playgroud)

每一行都有自己的列表(在每个动物列表中每个"trna"的列表内)

我记得看过Rcurl和XML(在R中)可以允许这样的任务.但我不知道如何使用它们.所以我希望拥有的是:1.关于如何构建这样的代码的一些建议.2.并建议如何学习执行此类任务所需的知识.

谢谢你的帮助,

塔尔

r web-scraping

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

最后的观察结果在数据框架中?

我希望对我正在处理的数据集实施"最后一次观察结果",该数据集在结尾处缺少值.

这是一个简单的代码(问题之后):

LOCF <- function(x)
{
    # Last Observation Carried Forward (for a left to right series)
    LOCF <- max(which(!is.na(x))) # the location of the Last Observation to Carry Forward
    x[LOCF:length(x)] <- x[LOCF]
    return(x)
}


# example:
LOCF(c(1,2,3,4,NA,NA))
LOCF(c(1,NA,3,4,NA,NA))
Run Code Online (Sandbox Code Playgroud)

现在这适用于简单的矢量.但是,如果我在数据框上尝试使用它:

a <- data.frame(rep("a",4), 1:4,1:4, c(1,NA,NA,NA))
a
t(apply(a, 1, LOCF)) # will make a mess
Run Code Online (Sandbox Code Playgroud)

它会将我的数据框转换为字符矩阵.

你能想到一种在data.frame上做LOCF的方法,而不用把它变成矩阵吗?(我可以使用循环等来纠正混乱,但是会喜欢更优雅的解决方案)

干杯,

塔尔

r matrix apply dataframe

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

如何绘制小提琴散点箱图(在R中)?

我刚刚得到以下情节:

替代文字

并想知道如何在R中完成?(或其他软件)

更新10.03.11:感谢所有参与回答此问题的人 - 您提供了很棒的解决方案!我在我的博客上的帖子中编译了这里提供的所有解决方案(以及我在网上发布的其他一些解决方案).

r data-visualization

10
推荐指数
2
解决办法
4820
查看次数

"你必须提供哈希." 使用API​​下载数据时出错(在R中)

我想通过API代码从MARVEL DEVELOPER中提取数据并对其进行分析(使用R).

我从MARVEL网站获得以下网址:http://gateway.marvel.com:80/v1/public /characters?apikey = f389fcb49ad574e10ca570867f4bfa43

我使用httr包来收集数据:

install.packages("httr")
library(httr)
> url <- GET("http://gateway.marvel.com:80/v1/public/characters?orderBy=name&limit=100&apikey=f389fcb49ad574e10ca570867f4bfa43")
> content(url)
$code
[1] "MissingParameter"

$message
[1] "You must provide a hash."
Run Code Online (Sandbox Code Playgroud)

我想将所有这些数据提取到R.我应该做什么/读什么?

谢谢.

api r httr

10
推荐指数
2
解决办法
6734
查看次数

从dendextend :: circlize_dendrogram()的输出中提取簇颜色

我试图提取聚类中使用的颜色circlize_dendrogram.这是一个示例代码:

library(magrittr)
library(dendextend)

cols <- c("#009000", "#FF033E", "#CB410B", "#3B444B", "#007FFF")
dend <- iris[1:40,-5] %>% dist %>% hclust %>% as.dendrogram    

dend <- color_branches(dend, k = 5, col = cols)
dend %<>% set("labels_col", value = cols, k= 5)
dend %<>% set("labels_cex", .8)
dend %<>% set("branches_lwd", 2)

circlize_dendrogram(dend)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

以便使用提取列表簇cutree(dend, k = 5).有没有办法根据cols给定的?提取树形图中簇的颜色?我需要它来使用grid包在图中插入图例.

示例,图例:群集1 - #009000; 集群2 - #FF033E; 集群3 - #CB410B; 集群4 - #3B444B; 集群5 - #007FFF.问题circlize_dendrogram是用于群集的颜色的顺序是不同的.

虽然我可以手动执行此操作,但如果我可以自动执行此操作会很有效.如果我可以提取簇的颜色,这是可能的.

r hierarchical-clustering dendextend

10
推荐指数
2
解决办法
556
查看次数

使用dendextend在R中绘制tanglegrams子图

我正在使用dendextend在R中绘制Tanglegrams.我想知道是否有可能使用多个子图par(mfrow = c(2,2))

我似乎无法弄明白.

谢谢

library(dendextend)
dend15 <- c(1:5) %>% dist %>% hclust(method = "average") %>% as.dendrogram
dend15 <- dend15 %>% set("labels_to_char")
dend51 <- dend15 %>% set("labels", as.character(5:1)) %>% match_order_by_labels(dend15)
dends_15_51 <- dendlist(dend15, dend51)

par(mfrow = c(2,2))
tanglegram(dends_15_51)
tanglegram(dends_15_51)
tanglegram(dends_15_51)
tanglegram(dends_15_51)
Run Code Online (Sandbox Code Playgroud)

plot visualization r dendrogram dendextend

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

从对象清除R环境有哪些方法?

我知道我可以使用ls()和rm()来查看和删除环境中存在的对象.

但是,在处理"旧".RData文件时,有时需要选择一个环境来查找要保留的内容和要遗漏的内容.

我想做的是,有一个类似GUI的界面,允许我查看对象,对它们进行排序(例如,按大小排序),并删除我不需要的对象(例如,通过检查 - 盒子界面).既然我认为这样的系统目前还没有在R中实现,那么有哪些方法呢?你用什么来清理旧的.RData文件?

谢谢,

塔尔

r

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

使用R转换文件编码?(ANSI到UTF-8)

我希望使用R将用ANSI编码的HTML文件转换为UTF-8.

是否有工具或工具组合可以使这项工作?

谢谢.

编辑:好的,我把我的问题缩小到了另一个.它重新发布在这里: 使用"cat"将非英文字符写入.html文件(在R中)

encoding r ansi utf-8

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

在knitr chunk评估中替换"print"函数

我想将"pander"功能设置为编译knitr rmarkdown文档时的替代"打印"功能.像这样(在R中运行的代码示例):

require(pander)
print <- function(...) pander(..., style = "rmarkdown") # makes sure that everyhing that everyprint will pass through pander
summary(cars)
Run Code Online (Sandbox Code Playgroud)

这将导致:

> summary(cars)

----------------------------------
&nbsp;    speed          dist     
------ ------------ --------------
 ****  Min.  : 4.0   Min.  : 2.00 

 ****  1st Qu.:12.0 1st Qu.: 26.00

 ****  Median :15.0 Median : 36.00

 ****   Mean :15.4   Mean : 42.98 

 ****  3rd Qu.:19.0 3rd Qu.: 56.00

 ****  Max.  :25.0  Max.  :120.00 
----------------------------------
Run Code Online (Sandbox Code Playgroud)

这样,我将使所有表格格式化,而不是手动需要在整个文档中写"pander"(想象我必须在文档中写"摘要(汽车)20次,更改"打印"将保存我写pander(摘要(汽车))).

那可能吗?(还是有一种我不知道的更聪明的方式?)

谢谢.

更新:.rmd文件的示例:

TEST
====

```{r}

require(pander)
print <- function(...) …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

9
推荐指数
2
解决办法
1564
查看次数