Questions tagged «r»

R是一种免费的开源编程语言和软件环境,用于统计计算,生物信息学,可视化和通用计算。请提供最少且可复制的示例以及所需的输出。使用`dput()`作为数据,并通过`library()`调用指定所有非基本包。不要为数据或代码嵌入图片,而应使用缩进的代码块。对于统计相关的问题,请使用https://stats.stackexchange.com。

2
Alpha美学显示了箭头的骨架,而不是普通的形状-如何预防?
我的目标是在条形图的末端建立带有箭头的条形图。我去geom_segment与arrow定义。我想将一列映射到透明度上,但是Alpha美学在使用箭头对象时似乎无法正常工作。这是代码片段: tibble(y = c(10, 20, 30), n = c(300, 100, 200), transparency = c(10, 2, 4)) %>% ggplot() + geom_segment(aes(x = 0, xend = n, y = y, yend = y, alpha = transparency), colour = 'red', size = 10, arrow = arrow(length = unit(1.5, 'cm'), type = 'closed')) + …
11 r  ggplot2  geom-bar 

6
识别并标记r中的重复行
我想识别并标记基于2列的重复行。我想为每个重复项创建唯一的标识符,因此我不仅知道该行是重复项,而且还知道它与哪一行是重复项。我有一个如下所示的数据框,其中包含一些重复的项对(适合和坐着)和其他不重复的对。当项目对重复时,它们包含的信息是唯一的(例如,一行将在Value1中保留1行的值,但不包含Value2和Value 3,第二行或“重复”行仅具有Value2和Value3的数字)不是Value1) 当前数据框 value1 value2 value3 fit sit [1,] "1" NA NA "it1" "it2" [2,] NA "3" "2" "it2" "it1" [3,] "2" "3" "4" "it3" "it4" [4,] NA NA NA "it4" "it3" [5,] "5" NA NA "it5" "it6" [6,] NA NA "2" "it6" "it5" [7,] NA "4" NA "it7" "it9" …
11 r  dataframe 

6
拆分字符列并获取字符串中的字段名称
我需要将包含信息的列拆分为几列。 我会使用,tstrsplit但相同的信息在行之间的顺序并不相同,我需要在变量中提取新列的名称。重要信息:可能有很多信息(字段变成新变量),我不知道所有这些信息,因此,我不需要“逐字段”解决方案。 以下是我所拥有的示例: library(data.table) myDT <- structure(list(chr = c("chr1", "chr2", "chr4"), pos = c(123L, 435L, 120L), info = c("type=3;end=4", "end=6", "end=5;pos=TRUE;type=2" )), class = c("data.table", "data.frame"), row.names = c(NA,-3L)) # chr pos info #1: chr1 123 type=3;end=4 #2: chr2 435 end=6 #3: chr4 120 end=5;pos=TRUE;type=2 我想得到: # chr pos end …
11 r  data.table  reshape 

1
在对特定行进行条件调整时动态地对多列进行突变
我知道这里有几个类似的问题,但是似乎没有一个问题可以解决我遇到的确切问题。 set.seed(4) df = data.frame( Key = c("A", "B", "A", "D", "A"), Val1 = rnorm(5), Val2 = runif(5), Val3 = 1:5 ) 我想将其中Key ==“ A”的行的value列的值清零。通过a引用列名grep: cols = grep("Val", names(df), value = TRUE) 通常,在这种情况下,要实现我想要的功能,我将使用data.table以下命令: library(data.table) df = as.data.table(df) df[Key == "A", (cols) := 0] 所需的输出是这样的: Key Val1 Val2 Val3 1 A …
11 r  dplyr  data.table 

5
获取所有源函数
在R中,我source()用来加载一些函数: source("functions.R") 是否可以获取此文件中定义的所有功能的列表?作为函数名称。(也许source()本身可以以某种方式返回它?)。 PS:最后的办法是source()第二次调用local({ source(); }),然后在ls()内部和过滤器函数中进行调用,但这太复杂了-有没有更简单,更简洁的解决方案?
11 r 

6
根据多个列和阈值合并数据帧
我有两个data.frames的多个公共列(这里date,city,ctry,和(other_)number)。 我现在想将它们合并到以上各列中,但可以容忍某种程度的差异: threshold.numbers <- 3 threshold.date <- 5 # in days 如果date条目之间的差异是> threshold.date(天)或 > threshold.numbers,我不希望合并这些行。同样,如果in city中df的条目是该city列中另一个条目的子字符串,我希望将这些行合并。[如果任何人有一个更好的主意来测试实际的城市名称相似,我会很高兴听到这个消息。(并保持第一df“的S记录date,city以及country但是两者(other_)number列,并在所有其他列df。 考虑以下示例: df1 <- data.frame(date = c("2003-08-29", "1999-06-12", "2000-08-29", "1999-02-24", "2001-04-17", "1999-06-30", "1999-03-16", "1999-07-16", "2001-08-29", "2002-07-30"), city = c("Berlin", "Paris", "London", "Rome", "Bern", "Copenhagen", "Warsaw", "Moscow", "Tunis", "Vienna"), ctry = c("Germany", "France", "UK", "Italy", "Switzerland", …
11 r  dataframe 

2
创建多列构面函数
我正在尝试创建一个facet_multi_col()函数,该facet_col()函数类似于中的函数ggforce-允许使用空格参数(在中不可用facet_wrap())进行构面布局-但可以在多个列上使用。就像下面的最后一个图(用创建grid.arrange())一样,我不希望这些小平面必须在行之间对齐,因为每个小平面的高度将根据y我希望使用的类别变量而变化。 ggproto阅读扩展指南后,我发现自己已经完全脱离了深度。我认为最好的方法是传递一个布局矩阵来指示在哪里断开数据对应子集的列,并facet_col 在ggforce中进行构建以包括一个空间参数-请参阅问题的结尾。 我不满意的选择的快速说明 无面 library(tidyverse) library(gapminder) global_tile <- ggplot(data = gapminder, mapping = aes(x = year, y = fct_rev(country), fill = lifeExp)) + geom_tile() global_tile 我想按大洲细分情节。我不要这么长的身材。 facet_wrap() global_tile + facet_wrap(facets = "continent", scales = "free") facet_wrap()没有空格参数,这表示每个大陆的磁贴大小不同,使用coord_equal()会引发错误 ggforce中的facet_col() library(ggforce) global_tile + facet_col(facets = "continent", scales = "free", space = "free", …

1
格尼玛特图,点保持不变,线变淡
这是一个静态图的可复制示例,我想对其进行动画处理(我想显示MCMC采样器的行为)。 library(tidyverse) library(gganimate) set.seed(1234) plot_data <- tibble(x=cumsum(rnorm(100)), y=cumsum(rnorm(100)), time=1:length(x)) ggplot(data=plot_data, aes(x=y, y=x)) + geom_point() + geom_line() 我想看到的是,绘制点时它们是可见的,然后一点点褪色(即alpha从1变为0.3),而会有一行仅显示最近的历史(理想情况下是淡淡显示)最近的历史消失得最少,退后几步完全消失)。 以下内容或多或少达到了我想要的点数(因此,在某种意义上,我只想向连接最后几个点的部分添加渐变线-点在某些帧上越慢渐变越好): ggplot(data=plot_data, aes(x=y, y=x)) + geom_point() + transition_time(time) + shadow_mark(past = T, future=F, alpha=0.3) 我正在努力的是如何为两个几何(例如点和线)添加两个不同的行为。例如,在下面的点消失了(我不希望它们消失),线条也没有褪色(我希望它们消失)。 p <- ggplot(data=plot_data, aes(x=y, y=x)) + geom_point() + transition_time(time) + shadow_mark(past = T, future=F, alpha=0.3) p + geom_line() …

2
R ggplot2:如何根据facet_wrap变量的值命名y轴?
我将为您提供有关数据的想法,然后我认为应该更容易理解我要实现的目标。 Repex: ID <- c(1, 1, 2, 3, 3, 3) cat <- c("Others", "Others", "Population", "Percentage", "Percentage", "Percentage") logT <- c(2.7, 2.9, 1.5, 4.3, 3.7, 3.3) m <- c(1.7, 1.9, 1.1, 4.8, 3.2, 3.5) aggr <- c("median", "median", "geometric mean", "mean", "mean", "mean") over.under <- c("overestimation", "overestimation", "underestimation", "underestimation", "underestimation", …
10 r  ggplot2 

1
R:实现我自己的梯度提升算法
我正在尝试编写自己的梯度提升算法。我了解有类似的现有软件包gbm,xgboost,但我想通过编写自己的软件包来了解算法的工作原理。 我正在使用iris数据集,结果是Sepal.Length(连续的)。我的损失函数是mean(1/2*(y-yhat)^2)(基本上是前面有1/2的均方误差),所以我相应的梯度就是残差y - yhat。我正在将预测值初始化为0。 library(rpart) data(iris) #Define gradient grad.fun <- function(y, yhat) {return(y - yhat)} mod <- list() grad_boost <- function(data, learning.rate, M, grad.fun) { # Initialize fit to be 0 fit <- rep(0, nrow(data)) grad <- grad.fun(y = data$Sepal.Length, yhat = fit) # Initialize model mod[[1]] <- fit # …

3
使用gganimate通过观察建立直方图观察?需要处理更大的数据集(〜n = 5000)
该赏金过期2天。这个问题的答案有资格获得+200声望奖励。 max正在寻找信誉良好的答案。 我想从正态分布中采样点,然后使用该gganimate包一个一个地构建一个点图,直到最后一帧显示完整的点图。 一个适用于约5,000-20,000点的较大数据集的解决方案至关重要。 这是我到目前为止的代码: library(gganimate) library(tidyverse) # Generate 100 normal data points, along an index for each sample samples <- rnorm(100) index <- seq(1:length(samples)) # Put data into a data frame df <- tibble(value=samples, index=index) df看起来像这样: > head(df) # A tibble: 6 x 2 value index <dbl> <int> 1 …

1
ggplot2中geom_point的NPC坐标
如何获取ggplot中geom_point的x,y坐标,其中参考帧是整个绘制的图像? 我可以使用一些geom_point创建一个ggplot: library(ggplot2) my.plot <- ggplot(data.frame(x = c(0, 0.456, 1), y = c(0, 0.123, 1))) + geom_point(aes(x, y), color = "red") 这给出: 通过将其转换为grob,我可以提取关于该ggplot的一些其他信息,例如相对于绘图面板的坐标(由紫色箭头标记)。但是,这将忽略轴占用的空间。 my.grob <- ggplotGrob(my.plot) my.grob$grobs[[6]]$children[[3]]$x # [1] 0.0454545454545455native 0.46native 0.954545454545454native my.grob$grobs[[6]]$children[[3]]$y # [1] 0.0454545454545455native 0.157272727272727native 0.954545454545454native 从整个图像的左下角开始测量时,如何获得x,y坐标的值,并用绿色箭头标记? 如果有可能,我想解决顾及主题的的ggplot。添加主题等+ theme_void()影响轴和也相对于整个绘图图像偏移的点的位置。 更新:我意识到轴的字体大小会根据绘图的宽度和高度而变化,从而影响绘图面板的相对大小。因此如果不定义绘图宽度和绘图高度,以npc为单位提供位置并不是一件容易的事。如果可能,根据绘图宽度和绘图高度给出geom_points的位置。
10 r  ggplot2  grob 

2
dplyr过滤条件以区分Unicode符号及其Unicode表示形式
我正在尝试根据其格式来过滤Symbol列 \uxxxx 这是很容易在视觉上,就是有些模样$,¢,£,和其他人一样\u058f,\u060b,\u07fe。 但是我似乎无法使用stringi/ 弄清楚dplyr library(dplyr) library(stringi) df <- structure(list(Character = c("\\u0024", "\\u00A2", "\\u00A3", "\\u00A4", "\\u00A5", "\\u058F", "\\u060B", "\\u07FE", "\\u07FF", "\\u09F2", "\\u09F3", "\\u09FB", "\\u0AF1", "\\u0BF9", "\\u0E3F", "\\u17DB", "\\u20A0", "\\u20A1", "\\u20A2", "\\u20A3"), Symbol = c("$", "¢", "£", "¤", "¥", "\u058f", "\u060b", "\u07fe", "\u07ff", "৲", "৳", "\u09fb", "\u0af1", "\u0bf9", "฿", "៛", "₠", …
10 r  dplyr  stringr  stringi 

1
使用glm拟合逻辑回归的默认起始值
我想知道如何在中指定默认起始值glm。 这篇文章建议将默认值设置为零。这个人说背后有一个算法,但是相关的链接坏了。 我试图用算法跟踪拟合简单的逻辑回归模型: set.seed(123) x <- rnorm(100) p <- 1/(1 + exp(-x)) y <- rbinom(100, size = 1, prob = p) # to see parameter estimates in each step trace(glm.fit, quote(print(coefold)), at = list(c(22, 4, 8, 4, 19, 3))) 首先,不指定初始值: glm(y ~ x, family = "binomial") Tracing glm.fit(x = structure(c(1, …

2
如何使用r-markdown编织与多行文本对齐的嵌入式图像?
我想编织一个报告,使标题类似于下图。 最左边的正方形是一个图标 矩形是文字 我目前遇到三个问题 如何插入带有网址的图标(在线图像)? 如何设置图标的格式,使其与3行文本对齐 如何更改行之间的字体大小和行间距 请在下面找到最小的可复制示例(请注意,我已经注释了在线图片,因为我不知道如何正确编码) --- output: pdf_document geometry: margin=0.25in classoption: - landscape --- ```{r, echo=FALSE, results='asis'} for (i in unique(iris$Species)) { cat("\\newpage") # cat('\n![](https://bookdown.org/yihui/rmarkdown/images/hex-rmarkdown.png)\n') cat("\n#", "Iris Species Summary", "\\hfill", paste0("Exhibit ", grep(i, unique(iris$Species)), ".1")) cat("\n##", i, "\\hfill", "(Gross)") cat("\n######", "(000's)", "\\hfill", as.character(Sys.Date())) } ```
10 r  r-markdown  knitr 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.