小编ckl*_*uss的帖子

dplyr更改了许多数据类型

更改数据类型我可以使用类似的东西

l1 <- c("fac1","fac2","fac3")
l2 <- c("dbl1","dbl2","dbl3")
dat[,l1] <- lapply(dat[,l1], factor)
dat[,l2] <- lapply(dat[,l2], as.numeric)
Run Code Online (Sandbox Code Playgroud)

dplyr

dat <- dat %>% mutate(
    fac1 = factor(fac1), fac2 = factor(fac2), fac3 = factor(fac3),
    dbl1 = as.numeric(dbl1), dbl2 = as.numeric(dbl2), dbl3 = as.numeric(dbl3)
)
Run Code Online (Sandbox Code Playgroud)

在dplyr中有更优雅(更短)的方式吗?

克里斯托夫

r dataframe dplyr

52
推荐指数
5
解决办法
8万
查看次数

在dplyr行总和中忽略NA

在dplyr中有一种优雅的方式来处理NA为0(na.rm = TRUE)吗?

data <- data.frame(a=c(1,2,3,4), b=c(4,NA,5,6), c=c(7,8,9,NA))

data %>% mutate(sum = a + b + c)

a  b  c sum
1  4  7  12
2 NA  8  NA
3  5  9  17
4  6 NA  NA

but I like to get

a  b  c sum
1  4  7  12
2 NA  8  10
3  5  9  17
4  6 NA  10
Run Code Online (Sandbox Code Playgroud)

即使我知道在许多其他情况下这不是理想的结果

r sum dplyr

22
推荐指数
4
解决办法
2万
查看次数

列出data.frame的所有因子级别

str(data)我得到的head水平(1-2值)

fac1: Factor w/ 2  levels ... :
fac2: Factor w/ 5  levels ... :
fac3: Factor w/ 20 levels ... :
val: num ...
Run Code Online (Sandbox Code Playgroud)

dplyr::glimpse(data)我得到因子水平的数/值更多的价值,但没有相关信息.是否有自动方法获取data.frame中所有因子变量的所有级别信息?一个包含更多信息的简短表格

levels(data$fac1)
levels(data$fac2)
levels(data$fac3)
Run Code Online (Sandbox Code Playgroud)

或者更准确地说是一个优雅的版本

for (n in names(data))
  if (is.factor(data[[n]])) {
    print(n)
    print(levels(data[[n]]))
  }
Run Code Online (Sandbox Code Playgroud)

克里斯托夫

r dataframe r-factor

20
推荐指数
3
解决办法
6万
查看次数

在dplyr中,如何删除和重命名不存在的列,操作所有名称,并使用字符串命名新变量?

如何使用以下方法简化或执行以下操作dplyr:

  1. 对所有data.frame名称运行一个函数mutate_each(funs()),例如值

    names(iris) <- make.names(names(iris))
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除不存在的列(即删除任何内容),例如

    iris %>% select(-matches("Width")) # ok
    iris %>% select(-matches("X"))     # returns empty data.frame, why?
    
    Run Code Online (Sandbox Code Playgroud)
  3. 按名称(字符串)添加新列,例如

    iris %>% mutate_("newcol" = 0) # ok
    
    x <- "newcol"
    iris %>% mutate_(x = 0) # adds a column with name "x" instead of "newcol"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重命名不存在的data.frame colname

    names(iris)[names(iris)=="X"] <- "Y"
    
    iris %>% rename(sl=Sepal.Length) # ok
    iris %>% rename(Y=X)             # error, instead of no change
    
    Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr

13
推荐指数
1
解决办法
5783
查看次数

grep for dplyr sql table?

是否有使用类似的方法

filter(df, grepl("A|B|C",location))
Run Code Online (Sandbox Code Playgroud)

对于dplyr SQL表?在SQL中它是probalby a LIKE.我可以将SQL表转换为R数据表,但它非常大.(http://cran.r-project.org/web/packages/dplyr/vignettes/databases.html)我得到的那一刻

Error in sqliteSendQuery(conn, statement) : 
  error in statement: no such function: GREPL
Run Code Online (Sandbox Code Playgroud)

克里斯托夫

r filter dplyr grepl

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

ggplot2:在facet_grid图中更改strip.text位置

您可以在绘图区域内设置图例的位置,例如

... + theme(legend.justification=c(1,0), legend.position=c(1,0))
Run Code Online (Sandbox Code Playgroud)

是否有类似的简单方法来更改条带文本的位置(或分组图中的因子级别)

library(reshape2); library(ggplot2)

sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) + geom_point() +
  facet_grid(. ~ sex)

sp
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

(http://www.cookbook-r.com/Graphs/Facets_%28ggplot2%29/)

在格子中,我会使用像strip.text = levels(dat $ Y)[panel.number()]和panel.text(...)这样的东西,但也可能有一种更干净的方式......

谢谢,Christof

plot r ggplot2

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

前三位数的圆数(以数字开头!= 0)

是否有预定义的格式函数将数字四舍五入到前3位数?(开头应该是数字!= 0)

-0.02528498    to -0.0253
 1.857403      to 1.86     
 2060943       to 2060000
 0.00006513832 to 0.0000651
Run Code Online (Sandbox Code Playgroud)

numbers r pretty-print rounding

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

格子,仅在连接具有正斜率时才连接点

只有在连接具有正斜率时,才能以一种舒适的方式连接点?(否则该函数的行为应与xyplot(...)完全相同)

library(lattice)

dat <- data.frame(x=1:10,y=sample(1:10))

xyplot(y ~ x, data=dat,
       panel = function(x, y,...) { 
         panel.xyplot(x, y, type="o",...)
       }
)
Run Code Online (Sandbox Code Playgroud)

所以结果应该像这样的情节,但没有交叉线:

在此输入图像描述

谢谢Christof

plot r lattice

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

可视化ANCOVA包含公式(例如库HH)

包HH似乎提供了一种可视化ANCOVA的简便方法

library(HH)
data(hotdog)
ancova(Sodium ~ Calories * Type, data=hotdog)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有喜欢的东西来combinate这样一个舒适的方式panel.ablineqlatticeExtra?(http://latticeextra.r-forge.r-project.org#panel.ablineq)获取具体功能(斜率,截距)?

plot r lattice

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

线性插值时间序列中的缺失值

我想在a data.frame和线性插入所有缺失值之间添加最小和最大日期之间的所有缺失日期,例如

df <- data.frame(date = as.Date(c("2015-10-05","2015-10-08","2015-10-09",
                                  "2015-10-12","2015-10-14")),       
                 value = c(8,3,9,NA,5))

      date value
2015-10-05     8
2015-10-08     3
2015-10-09     9
2015-10-12    NA
2015-10-14     5

      date value approx
2015-10-05     8      8
2015-10-06    NA   6.33
2015-10-07    NA   4.67
2015-10-08     3      3
2015-10-09     9      9
2015-10-10    NA   8.20
2015-10-11    NA   7.40
2015-10-12    NA   6.60
2015-10-13    NA   5.80
2015-10-14     5      5
Run Code Online (Sandbox Code Playgroud)

有没有一个明确的解决方案dplyrapprox?(我不喜欢我的10行for循环代码.)

r time-series linear-interpolation dplyr

6
推荐指数
3
解决办法
7633
查看次数