说我有这个数据,
(df <- data.frame( col1 = c('My','Your','His','Thir'), col2 = c('Cat','Dog','Fish','Dog')))
col1 col2
1 My Cat
2 Your Dog
3 His Fish
4 Thir Dog
Run Code Online (Sandbox Code Playgroud)
我想要像这样组合列
`some magic`
col1 col2 col3
1 My Cat My Cat
2 Your Dog Your Dog
3 His Fish His Fish
4 Thir Dog Thir Dog
Run Code Online (Sandbox Code Playgroud)
我该怎么办?也许用这样的逗号(,),
`some magic`
col1 col2 col3
1 My Cat My, Cat
2 Your Dog Your, Dog
3 His Fish His, Fish
4 Thir Dog Thir, Dog
Run Code Online (Sandbox Code Playgroud) 我正在尝试计算连续3次"a"事件的实例"aaa".
该字符串将包括较低的字母表,例如 "abaaaababaaa"
我尝试了下面这段代码.但这种行为并不是我想要的.
x<-"abaaaababaaa";
gregexpr("aaa",x);
Run Code Online (Sandbox Code Playgroud)
我希望匹配返回"aaa"事件的3个实例,而不是2.
假设索引从1开始
我有两个数据框,包含一系列案例.一个从时间1和一个从时间2.我正在寻找一种方法来快速识别在时间1和时间2之间发生变化的情况,我有点卡住.
这是一个例子.所以,我从时间1开始有一个数据框,
df.t1 <- data.frame(id = c(1,1,1,2,2,3,3,5,5,6), ABC = LETTERS[1:10], Num = 101:110)
Run Code Online (Sandbox Code Playgroud)
它看起来像这样,
df.t1
id ABC Num
1 1 A 101
2 1 B 102
3 1 C 103
4 2 D 104
5 2 E 105
6 3 F 106
7 3 G 107
8 5 H 108
9 5 I 109
10 6 J 110
Run Code Online (Sandbox Code Playgroud)
时间两卷
df.t2 <- df.t1
Run Code Online (Sandbox Code Playgroud)
并发生一些变化,
df.t2[3,3] <- 104
df.t2[2,2] <- "H"
df.t2[8,3] <- 999
df.t2[10,3] <- NA
df.t2[11,] <- c(3, "J", 107) …Run Code Online (Sandbox Code Playgroud) 我想这样做
set.seed(667)
df <- data.frame(a = sample(c(c(4,7),11,NA), 10, rep = TRUE),
b = sample(c(1, 2, 3, NA, 5, 6), 10, rep=TRUE),
c = sample(c(11, 12, 13, 14, 15, 16), 10, rep=TRUE))
Run Code Online (Sandbox Code Playgroud)
但没有得到这个,
df
a b c
1 4 NA 12
2 7 6 12
3 NA NA 14
4 11 1 16
5 NA 2 14
6 NA 3 13
7 11 NA 13
8 NA 6 15
9 7 3 16
10 7 5 16
Run Code Online (Sandbox Code Playgroud)
我希望得到一些东西,我在某些地方有一个范围,
a b c …Run Code Online (Sandbox Code Playgroud) 我有dplyr::recode一些因素,我正在寻找一种干净的方式来制作LaTeX表,比较新旧类别,即水平.
以下是使用cyl`mtcars 的问题的说明.先是一些包裹,
# install.packages("tidyverse", "stargazer","reporttools")
library(tidyverse)
Run Code Online (Sandbox Code Playgroud)
以及我打算使用的数据,
mcr <- mtcars %>% select(cyl) %>% as_tibble()
mcr %>% print(n=5)
#> # A tibble: 32 x 1
#> cyl
#> * <dbl>
#> 1 6.00
#> 2 6.00
#> 3 4.00
#> 4 6.00
#> 5 8.00
#> # ... with 27 more rows
Run Code Online (Sandbox Code Playgroud)
现在,我创建了两个新因子,一个有三个类别,cyl_3col一个有两个cyl_is_red,即:
mcr_col <- mcr %>% as_tibble() %>%
mutate(cyl_3col = factor(cyl, levels = c(4, 6, 8),labels = c("red", "blue", "green")),
cyl_is_red …Run Code Online (Sandbox Code Playgroud) 如何从 .xlsx-workbook简洁地导入选定的工作表,最好使用readxl?
随着下面的代码(方法#1)我可以导入所有工作表在一个单一的.xlsx工作簿,但我怎么filter()还是select()?代码的第二位,使用map_dfr(), 方法#2,有点简洁,但是使用这种方法,sheet向量会丢失它的名称并变成 1, 2, ctc。
说我只想导入工作表iris和mtcars
sh_to_impt <- c('iris', 'mtcars')
Run Code Online (Sandbox Code Playgroud)
需要的包裹,
library(readxl)
library(tidyverse)
library(purrr)
Run Code Online (Sandbox Code Playgroud)
path <- readxl_example("datasets.xlsx")
datasets_data <- readxl::excel_sheets(path = path) %>%
purrr::set_names() %>% select(mtcars) %>%
purrr::map_dfr(
~ readxl::read_excel(path = path, sheet = .x)
, .id = "sheet"
)
datasets_data
# A tibble: 1,253 x 24
sheet Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<chr> <dbl> <dbl> <dbl> <dbl> <chr>
1 iris 5.1 3.5 1.4 …Run Code Online (Sandbox Code Playgroud) 我试图使用ggplotand生成一些地图sp,我有一个3000+ x 3000+像素原始大小的底图,我也有一些2000+ x 2000+像素。有趣的是,直到现在我仍然无法创建3000+ x 3000+像素 png 文件,因为 R 给了我以下错误:
Error in png(chart.filename, width = basemap.xlength, height = basemap.ylength, :
unable to start png() device
In addition: Warning messages:
1: In png(chart.filename, width = basemap.xlength, height = basemap.ylength, :
Unable to allocate bitmap
2: In png(chart.filename, width = basemap.xlength, height = basemap.ylength, :
opening device failed
Run Code Online (Sandbox Code Playgroud)
这是对R的限制吗?我怎么能熬过去呢?谢谢。
我正在使用带有 R 2.15.0 的 Win7。
我正在处理一些时间数据,而且我在将时差转换为数年和数月时遇到了问题.
我的数据或多或少看起来像这样,
dfn <- data.frame(
Today = Sys.time(),
DOB = seq(as.POSIXct('2007-03-27 00:00:01'), len= 26, by="3 day"),
Patient = factor(1:26, labels = LETTERS))
Run Code Online (Sandbox Code Playgroud)
首先,我从DOB今天的数据(Today)中减去birth()形式的数据.
dfn$ageToday <- dfn$Today - dfn$DOB
Run Code Online (Sandbox Code Playgroud)
这给了我Time difference in days.
dfn$ageToday
Time differences in days
[1] 1875.866 1872.866 1869.866 1866.866 1863.866
[6] 1860.866 1857.866 1854.866 1851.866 1848.866
[11] 1845.866 1842.866 1839.866 1836.866 1833.866
[16] 1830.866 1827.866 1824.866 1821.866 1818.866
[21] 1815.866 1812.866 1809.866 1806.866 1803.866
[26] 1800.866
attr(,"tzone")
[1] ""
Run Code Online (Sandbox Code Playgroud)
这是我提问的第一部分; 如何将此差异转换为年和月(四舍五入到几个月)? …
我正在研究一些室内和室外活动的相当精细的情节,我有点卡住了.我想添加着色用了室内/室外用(纪要Xmin,Ymin以及Zmin中)geom_segment我的阴谋的步骤(见下文).它目前仅 Zmin被着色(使用连续变量,有点关闭).
我粘贴了所有代码以防其他人想要构建这样的东西,我最初的灵感来自这篇博文.
任何帮助将不胜感激,谢谢!
df <- data.frame(
date = seq(Sys.Date(), len= 156, by="4 day")[sample(156, 26)],
action = paste('Then', LETTERS[1:13], 'happed, which was not related to', LETTERS[14:26]),
IndoorOutdoor = rep(c(-1,1), 13),
Xmin = sample(90, 26, replace = T),
Ymin = sample(90, 26, replace = T),
Zmin = sample(90, 26, replace = T)
)
df$XYZmin <- rowSums(df[,c("Xmin", "Ymin", "Zmin")])*df$IndoorOutdoor
# install.packages("ggplot2", dependencies = TRUE)
require(ggplot2)
# step 1
plot <- …Run Code Online (Sandbox Code Playgroud) 我有兴趣构建一个R函数,我可以用它来测试泰勒级数近似的极限.我知道我正在做的事情是有限的,但这正是我希望调查的那些限制.
我有两个正态分布的随机变量x和y. x平均值为7,标准偏差(sd)为1. y平均值为5,sd值为4.
me.x <- 4; sd.x <- 1
me.y <- 5; sd.y <- 4
Run Code Online (Sandbox Code Playgroud)
我知道如何估算平均比例y/x,就像这样
# E(y/x) = E(y)/E(x) - Cov(y,x)/E(x)^2 + Var(x)*E(y)/E(x)^3
me.y/me.x - 0/me.x^2 + sd.x*me.y/me.x^3
[1] 1.328125
Run Code Online (Sandbox Code Playgroud)
然而,我仍然坚持如何估计比率的标准差?我意识到我必须使用泰勒扩展,但不是如何使用它.
我做了一个简单的模拟
x <- rnorm(10^4, mean = 4, sd = 1); y <- rnorm(10^4, mean = 5, sd = 4)
sd(y/x)
[1] 2.027593
mean(y/x)[1]
1.362142
Run Code Online (Sandbox Code Playgroud)