小编Mis*_*sha的帖子

dplyr使用t.test汇总多个列

是否有可能以某种方式针对相同的分类变量对多个变量执行t.test,而不进行如下数据集的重新整形?

data(mtcars)
library(dplyr)
library(tidyr)
j <- mtcars %>% gather(var, val, disp:qsec)
t <- j %>% group_by(var) %>% do(te = t.test(val ~ vs, data = .))

t %>% summarise(p = te$p.value)
Run Code Online (Sandbox Code Playgroud)

我试过用

mtcars%>%summarise_each_(funs =(t.test(.~vs))$ p.value,vars = disp:qsec)

但它会引发错误.

奖励:如何t %>% summarise(p = te$p.value)还包括分组变量的名称?

r dplyr

16
推荐指数
3
解决办法
1万
查看次数

行strsplit rowwise

我试图在"."上分割一个字符串.并使用"."之前和之后的两个字符串创建其他列.

tes<-c("1.abc","2.di","3.lik")
dat<-c(5,3,2)
h<-data.frame(tes,dat)
h$num<-substr(h$tes,1,1)

h$prim<-unlist(strsplit(as.character(h$tes),"\\."))[2]
h$prim<-sapply(h$tes,unlist(strsplit(as.character(h$tes),"\\."))[2])
Run Code Online (Sandbox Code Playgroud)

我想h$prim包含"abc","di","lik"..但是我无法弄明白.我猜strsplit不是矢量化,但后来我认为该sapply版本应该有效.但是我认为应该很容易:-)

问候,// M

r strsplit

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

vcovHC和置信区间

在拟合模型后,是否可以使用vcovHC(来自夹层包装)获得的强大vcov?

r confidence-interval

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

选择r中组中具有最大变量值的行

a.2<-sample(1:10,100,replace=T)
b.2<-sample(1:100,100,replace=T)
a.3<-data.frame(a.2,b.2)

r<-sapply(split(a.3,a.2),function(x) which.max(x$b.2))

a.3[r,]
Run Code Online (Sandbox Code Playgroud)

返回列表索引,而不是整个data.frame的索引

我试图返回b.2每个子组的最大值a.2.我怎样才能有效地做到这一点?

r groupwise-maximum

9
推荐指数
3
解决办法
8312
查看次数

R中的变量名称向量

我想创建一个自动生成单向和多变量回归分析的函数,但我无法弄清楚如何在向量中指定**变量...**这看起来很简单,但略读文档我到目前为止还没弄明白......

简单的例子

a<-rnorm(100)
b<-rnorm(100)
k<-c("a","b")
d<-c(a,b)
summary(k[1])
Run Code Online (Sandbox Code Playgroud)

但是k [1] ="a"并且是一个字符向量... d只是b附加到a,而不是变量名.实际上,我希望k [1]代表向量a.

感谢任何答案......

//中号

variables r vector

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

使用 dplyr 有条件地将行插入数据帧

如何在 mtcars 数据集中 hp 超过 110 的每一行后插入新行,仍然保持 hp <=110 的汽车?

library(tidyverse)
data(mtcars)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但没有成功--

mtcars %>% modify_if(.p = .$hp>110,.f = add_row(.after=1)) #noe equal lengths
mtcars %>% filter(hp>110) %>% add_row(.after=1) #only gives an extra row for the first row meeting condition
mtcars %>% rownames_to_column() %>% 
  group_by(rowname) %>% modify_if(.p=.$hp>110,.f=add_row(.after=1)) #not egual length
Run Code Online (Sandbox Code Playgroud)

以下 - 使用 purrr - 似乎有效:

foo <- function(df){
  if (df$hp>110) {df<-add_row(.data=df,.after=1)}
  df
}

mtcars %>% rownames_to_column(var = "make") %>% nest(-make) %>%
  mutate(new=map(data,~ foo(.x))) %>% select (-data) %>% unnest(new) …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

使用xtable为乳胶输出排序表

我正在尝试生成一个已排序的表并导出到latex中.然而,似乎xtable无法应对已排序的表.建议?

   a<-sample(letters,500,replace=T)
    b<-table(a)
    c<-sort(table(a),decreasing=T)
    xtable(b)
    xtable(c)
Run Code Online (Sandbox Code Playgroud)

//中号

r xtable

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

如何将R引文输出导出到尾注?

如何轻松地将R中的引文导入到例如获得的尾注中

citation("ggplot2")
Run Code Online (Sandbox Code Playgroud)

有没有一个很好的工作流程或我手动必须这样做?

r citations

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

当重塑不能猜出时变变量的名称时,重新形成r中的数据

我有一个宽大的数据集,超过1500列.由于许多变量都是重复的,我想重塑成长形.但是,r抛出一个错误:

Error in guess(varying) : 
  Failed to guess time-varying variables from their names
Run Code Online (Sandbox Code Playgroud)

试着通过玩具示例来理解这一点,我发现了这一点

u<-data.frame(id=1:100,f.1=rnorm(100),u.1=rnorm(100),i.1=rnorm(100),f.2=rnorm(100),u.2=rnorm(100),i.2=rnorm(100),
                  f.3=rnorm(100),u.3=rnorm(100),i.3=rnorm(100))

reshape(u,varying=2:10,direction="long")
Run Code Online (Sandbox Code Playgroud)

工作良好.但是,我的数据看起来更像是:

u<-data.frame(id=1:100,f1=rnorm(100),u1=rnorm(100),i1=rnorm(100),f2=rnorm(100),u2=rnorm(100),i2=rnorm(100),
              f3=rnorm(100),u3=rnorm(100),i3=rnorm(100))

reshape(u,varying=2:10,direction="long")
Run Code Online (Sandbox Code Playgroud)

这就是我失去的地方.任何聪明的想法,除了更改变量名称(这是累人的),我怎么能这样做?

r reshape

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

r中的paste,by和data.table

我正在尝试从重新整形的数据集中粘贴字符串.我正在使用data.table包,如下所示:

m<-data.frame(x=rep(c("a","b"),20),y=factor(sample(letters,40,replace=T)))
DT<-data.table(m)
setkey(DT,x)
DT[,paste(y,sep=","),by=x]
Run Code Online (Sandbox Code Playgroud)

但是,除了变量名之外,这只会给出一个与原始框架完全相同的新框架.我希望输出是两个连接的向量,其中变量被粘贴在一起.我怎样才能做到这一点?

r data.table

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