小编Gre*_*gor的帖子

在Ggplot2中使用自定义OTF字体

我需要在R中使用自定义字体,即"Archer"和ggplot2.Archer是我系统上安装的otf字体(Mac OSX Yosemite).

这个脚本(在这里找到:在ggplot2中修改字体)不适用于Archer,但适用于其他字体,如Arial.

install.packages("extrafont");library(extrafont)
font_import("Archer")
library(ggplot2)
qplot(1:10)+theme(text=element_text(family="Archer"))
Run Code Online (Sandbox Code Playgroud)

otf字体有什么问题吗?

macos fonts r ggplot2 typeface

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

为什么dplyr删除的值不符合条件?

我使用的dplyr替换valueNA,如果条件满足,但它把NA在地方,它不应该.

dput:

df <- structure(list(id = c("USC00231275", "USC00231275", "USC00231275", 
"USC00231275", "USC00231275", "USC00231275", "USC00231275", "USC00231275", 
"USC00231275", "USC00231275"), element = c("TMAX", "TMIN", "TMAX", 
"TMIN", "TMAX", "TMIN", "TMAX", "TMIN", "TMAX", "TMIN"), year = c(1937, 
1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937), month = c(5, 
5, 5, 5, 5, 5, 5, 5, 5, 5), day = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 
5), date = structure(c(-11933, -11933, -11932, -11932, -11931, 
-11931, …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

R 函数从数据框中提取前 n 个分数,并使用“apply”或 dplyr“rowwise”找到它们的平均值

数据框看起来像这样

df = data.frame(name = c("A","B","C"),
               exam1 = c(2,6,4),
               exam2 = c(3,5,6),
               exam3 = c(5,3,3),
               exam4 = c(1,NA,5))
Run Code Online (Sandbox Code Playgroud)

我想提取每个“名字”的前 3 个考试成绩,并使用apply()或 dplyr rowwise()函数找到它们的平均值。

r dataframe dplyr

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

从多个屏幕网页获取网络抓取信息

我试图从互联网上获取有关企业的一些信息.大部分信息都位于此页面:http://appscvs.supercias.gob.ec/portalInformacion/sector_societario.zul,页面如下所示:在此输入图像描述

在这个页面中,我必须单击选项卡Busqueda de Companias,然后有趣的一面开始.当我点击时,我得到下一个屏幕:在此输入图像描述 在这个页面中,我必须设置选项Nombre,然后我必须插入一个带有名称的字符串.例如,我将添加字符串PROAÑO & ASOCIADOS CIA. LTDA.,我将获得下一个屏幕: 在此输入图像描述

然后,我必须点击Buscar,我将进入下一个屏幕:在此输入图像描述

在这个屏幕中,我有这个企业的信息.然后,我必须单击选项卡Informacion Estados Financieros,我将进入下一个屏幕: 在此输入图像描述

在这个最终屏幕中,我必须单击选项卡Estado Situacion,我将从列中的企业获取信息Codigo de la cuenta contable,Nombre de la cuenta contable并且Valor.我想将这些信息保存在数据框中.我发现的大多数复杂的一面都是在我必须设置元素Nombre,插入一个字符串,然后Buscar点击直到找到标签时开始的Informacion Estados Financieros.我尝试过使用html_sessionhtml_formrvest包中,但元素是空的.

你能帮我解决一下这个问题吗?

r rvest

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

如何在ggplot2中制作更美观的字幕?

我试图在一些将在.rmd文件中显示的图中添加标题,但添加的标题不是非常美观.如果我只是在.rmd文件而不是绘图中包含标题会更好看.有什么方法可以让字幕在ggplot2中看起来更漂亮吗?

library(ggplot2)

data <- data.frame(col = c("left", "right"),
                   row = c("first", "second", "third", "fourth"),
                   x = rep.int(1,4),
                   y = rep.int(1,4))
data$col <- as.character(data$col)
data$row <- as.character(data$row)

caption <- paste(strwrap("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 r-markdown

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

ggplot2:更复杂的分面

我的热图继续变得越来越复杂.融化数据的一个示例:

head(df2)
  Class     Subclass         Family               variable value
1     A chemosensory family_1005117 caenorhabditis_elegans    10
2     A chemosensory family_1011230 caenorhabditis_elegans     4
3     A chemosensory family_1022539 caenorhabditis_elegans    10
4     A        other family_1025293 caenorhabditis_elegans    NA
5     A chemosensory family_1031345 caenorhabditis_elegans    10
6     A chemosensory family_1033309 caenorhabditis_elegans    10
tail(df2)
     Class Subclass        Family        variable value
6496     C  class c family_455391 trichuris_muris     1
6497     C  class c family_812893 trichuris_muris    NA
6498     F  class f family_225491 trichuris_muris     1
6499     F  class f family_236822 trichuris_muris     1
6500     F  class …
Run Code Online (Sandbox Code Playgroud)

r facet heatmap ggplot2

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

我怎样才能按时间顺序在ggplot2中订购几个月?

我试图绘制计数v/s月

ggplot(dat, aes(x=month, y=count,group=region)) +
    geom_line(data=mcount[mcount$region == "West coast", ],colour="black",stat="identity", position="dodge")+
     geom_point(data=mcount[mcount$region == "West coast", ],colour="black", size=2, shape=21, fill="white")+
     theme_bw()+
     theme(legend.key = element_rect(colour = "black")) +
     guides(fill = guide_legend(override.aes = list(colour = NULL)))+
     ggsave("test.png",width=6, height=4,dpi=300)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是我想按照时间顺序从1月到12月订购几个月.我怎么能这么做呢?

dput

structure(list(region = structure(c(6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

小于100的组合数

我有 13 个属于不同组的列表:

  • A组(列表1)

  • B组(清单2)、(清单3)、(清单4)、(清单5)、(清单6)

  • C组(清单7)、(清单8)、(清单9)、(清单10)、(清单11)

  • D组(列表12),(列表13)

所有组的总和必须为 1

  • A 组可以取 0-0.7 之间的值

  • B 组可以取 0-0.6 之间的值

  • C组可以取0-0.9之间的值

  • D组可以取0-0.1的值

我想找到这些列表可以在不超出其组限制的情况下进行的所有不同组合。

例如:

如果对于一个组合 List2 element = 0.6,List3、List4、List5 和 List6 必须为 0

有没有简单的方法来做到这一点?(我可以使用 R 或 Python)

(列表采用从 0 到其组限制的值,增量为.1

# i.e. 
List1=[0.0,0.1,0.2,...,0.7]
List2 = [0.0,0.1,0.2,...,0.6]
# etc.
Run Code Online (Sandbox Code Playgroud)

python iteration r permutation

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

使用函数而不是for循环来标识向量中的顺序更改

我的数据如下所示:

在此输入图像描述

我想确定每个观察所属的"下降趋势",所以我可以对它们进行分组并做一些事情,比如制作这个图:

在此输入图像描述

我区分"下降趋势"的逻辑是,当下一个观测值具有更高的测量值时,它们就会结束.

我已经写了一个循环来做这个,但我想知道是否有更好的方法来使用其中一个apply函数或类似的东西.

##Create sample data
df <- data.frame(timestamp = seq(1:20),
                 measurement = seq(10, 1, by = -1))


## This is the for loop I'm hoping to improve
df$downward.trend.seq <- 0
seq <- 1
for(i in 1:nrow(df)){

  df$downward.trend.seq[i] <- seq

  if (i < nrow(df) & df$measurement[i] < df$measurement[i+1]) {
    seq <- seq + 1
  }

}


## Code for plots
library(ggplot2)
library(dplyr)
ggplot(df, aes(x = timestamp, y = measurement)) + geom_point()
ggplot(df, aes(x = timestamp, y = …
Run Code Online (Sandbox Code Playgroud)

r

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

为什么“替代”可以在多行中而不是在一行中工作?

我试图回答有关为data.table对象创建非标准评估函数并进行分组求和的一个很好的问题。Akrun提出了一个可爱的答案,在此我将对其进行简化:

akrun <- function(data, var, group){
 var <- substitute(var)
 group <- substitute(group)
 data[, sum(eval(var)), by = group]
}

library(data.table)
mt = as.data.table(mtcars)
akrun(mt, cyl, mpg)
#    group    V1
# 1:     6 138.2
# 2:     4 293.3
# 3:     8 211.4
Run Code Online (Sandbox Code Playgroud)

我也在研究一个答案,并且得到了几乎相同的答案,但是substitutes与其他答案保持一致。我的导致错误:

gregor = function(data, var, group) {
  data[, sum(eval(substitute(var))), by = substitute(group)]
} 

gregor(mt, mpg, cyl)
# Error in `[.data.table`(data, , sum(eval(substitute(var))), by = substitute(group)) : 
#  'by' or 'keyby' must evaluate to vector or list …
Run Code Online (Sandbox Code Playgroud)

r data.table non-standard-evaluation

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