Questions tagged «r»

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

5
根据前n行有条件地创建新列
我有一个数据框架,如下所示: df <- data.frame("id" = c(111,111,111,222,222,222,222,333,333,333,333), "Location" = c("A","B","A","A","C","B","A","B","A","A","A"), "Encounter" = c(1,2,3,1,2,3,4,1,2,3,4)) id Location Encounter 1 111 A 1 2 111 B 2 3 111 A 3 4 222 A 1 5 222 C 2 6 222 B 3 7 222 A 4 8 333 B 1 9 333 A …

2
R:如何优雅地将代码逻辑与UI / html-tags分开?
问题 动态创建ui元素(shiny.tag,,shiny.tag.list...)时,我经常发现很难将其与代码逻辑分开,并且通常最终会产生混乱的嵌套嵌套tags$div(...),并与循环和条件语句混合在一起。尽管令人讨厌且难看,但它也容易出错,例如,在对html模板进行更改时。 可复制的例子 假设我具有以下数据结构: my_data <- list( container_a = list( color = "orange", height = 100, content = list( vec_a = c(type = "p", value = "impeach"), vec_b = c(type = "h1", value = "orange") ) ), container_b = list( color = "yellow", height = 50, content = list( vec_a …

1
如何将图片插入到ggplot图表的每个单独的栏中
我正在尝试比较不同统计数据的不同NBA新秀,并且我认为如果可以像r / dataisbeautiful图中那样在图的末尾添加球员的面孔,该图将看起来很棒。我的代码当前是这样的: a3 %>% ggplot(aes(x = reorder(Player, PPM), y = PPM)) + geom_bar(stat = "identity", aes(fill = Player)) + geom_text(aes(label = PPM), size = 3, position = position_dodge(width = 1), hjust = -0.1) + coord_flip() + theme_minimal() + xlab("Player") + ylab("Points Per Minute") + theme(legend.position = "none") 这是我的图形当前的样子
9 r  image  ggplot2 

3
如何有效地排序R中字符串中的字符?
如何有效地对向量中每个字符串的字符进行排序?例如,给定一个字符串向量: set.seed(1) strings <- c(do.call(paste0, replicate(4, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(3, sample(LETTERS, 10000, TRUE), FALSE)), do.call(paste0, replicate(2, sample(LETTERS, 10000, TRUE), FALSE))) 我编写了一个函数,该函数将每个字符串拆分为一个向量,对向量进行排序,然后折叠输出: sort_cat <- function(strings){ tmp <- strsplit(strings, split="") tmp <- lapply(tmp, sort) tmp <- lapply(tmp, paste0, collapse = "") tmp <- unlist(tmp) return(tmp) } sorted_strings <- sort_cat(strings) 但是,我需要将其应用到的字符串向量很长,并且此功能太慢。有没有人对如何提高性能有任何建议?

4
删除时间重叠的行的有效方法
我有一个较长的数据集,其中的列分别代表开始和结束时间,如果行与另一行重叠且具有较高的优先级(例如1为最高优先级),我想删除一行。我的示例数据是 library(tidyverse) library(lubridate) times_df <- tibble(start = as_datetime(c("2019-10-05 14:05:25", "2019-10-05 17:30:20", "2019-10-05 17:37:00", "2019-10-06 04:43:55", "2019-10-06 04:53:45")), stop = as_datetime(c("2019-10-05 14:19:20", "2019-10-05 17:45:15", "2019-10-05 17:50:45", "2019-10-06 04:59:00", "2019-10-06 05:07:10")), priority = c(5,3,4,3,4)) 我想出的方法是通过找到具有较高优先级值的重叠,然后使用anti_join从原始数据帧中将其删除来向后攻击该问题。如果三个时间段重叠相同的时间点,那么此代码将无法正常工作,而且我敢肯定,有一种更高效,更实用的方法可以执行此操作。 dropOverlaps <- function(df) { drops <- df %>% filter(stop > lead(start) | lag(stop) > start) %>% mutate(group …
9 r  dplyr 
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.