小编Ale*_*der的帖子

如何输出具有最大值的列

我有一个数据,我想找出哪个列具有最大值并输出该列名称.一个问题是,如果没有最大值(例如,所有数字相等)返回all_equal注释,或者如果两列具有相等的最大值,则与第三列相比,输出这两个列名称.

这是样本数据

test <- data.frame(A=c(5,NA,NA,1,NA,NA,3,NA,NA),B=c(NA,2,NA,NA,1,NA,NA,1,NA),C=c(NA,NA,1,NA,NA,1,NA,NA,3),gr=gl(3,3))

   A  B  C gr
1  5 NA NA  1
2 NA  2 NA  1
3 NA NA  1  1
4  1 NA NA  2
5 NA  1 NA  2
6 NA NA  1  2
7  3 NA NA  3
8 NA  1 NA  3
9 NA NA  3  3
Run Code Online (Sandbox Code Playgroud)

在每一个gr有在列值A,B and C.我的目的是找到哪个列在该组中具有最大值,并将该列名称输出到名为的新列col_name.

如果所有值彼此相等,则gr=2输出为all_equal

如果列中的两列与第三列相比具有最大值,就像gr=3输出列名称A&C中的那样col_name.

我意识到没有它可能很难建立一个管道 gather …

r dplyr

5
推荐指数
1
解决办法
107
查看次数

在dplyr mutate中使用"diff"函数时出错

我尝试将mutate新列添加到data.frame.当V列顺序从递减顺序变为递增顺序时,我使用其中的diff函数mutate将它们分类到新列中H.

V <- c(seq(30,-10,-10),seq(-10,30,10))
gr = rep(seq(1,3),each=10)
df <- data.frame(V,gr)

library(dplyr)    
diff_df <- df%>%
  group_by(gr)%>%
  mutate(H=ifelse(diff(V)<0,"back","forward"))
Run Code Online (Sandbox Code Playgroud)

但是得到错误

Error: incompatible size (9), expecting 10 (the group size) or 1
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做

DIFF(DF $ V)

[1] -10 -10 -10 -10 0 10 10 10 10 0 -10 -10 -10 -10 0 10 10 10 10 0 -10 -10 -10 -10 0 10 10 10 10

似乎在逻辑上有效.当我在里面做的时候为什么我会收到错误dplyr?

r difference dplyr

4
推荐指数
1
解决办法
1856
查看次数

条件更改或不更改组中的所有变量

我可能有一个非常简单的问题,即如果某些条件得到满足,则根据clasdf的变量调用变量.如果不满足条件,不要改变任何东西.

V <- seq(10,50,10)
gr = rep(seq(1,2),each=5)
clas=c("Normal","Abnormal","Fair","Fair","Normal","Fair","Normal","Normal","Abnormal","Fair")

df <- data.frame(V,gr,clas)

   #      V gr     clas
   #  1  10  1   Normal
   #  2  20  1 Abnormal
   #  3  30  1     Fair
   #  4  40  1     Fair
   #  5  50  1   Normal
   #  6  10  2     Fair
   #  7  20  2   Normal
   #  8  30  2   Normal
   #  9  40  2 Abnormal
   #  10 50  2     Fair
Run Code Online (Sandbox Code Playgroud)

我想设置clas列所有Normal如果显示的值Normal时, V=20V=30每个小组.如果这种情况不满意,则无需更改该组. …

r dplyr

4
推荐指数
1
解决办法
54
查看次数

“ tidyr”的单独函数中有多个单独的参数

我有一个关于将一列分为多列的问题。

我要分隔的字符串示例类似于“ 87 BestMovie.GOOD”,分隔位置是空格' ''.'

我尝试过这样

df=data.frame(Eastwood=c('87 BestMovie.GOOD'))
sep=df%>%
separate(Eastwood,into=c('age','Select','Movie'),sep=c(' ','.'))
Run Code Online (Sandbox Code Playgroud)

警告消息:1:1位置的值太多:2 2:1位置的值太少:1

或者换个角度来看,我们可以实现字符串位置进行分隔吗?

谢谢!

r dplyr tidyr

4
推荐指数
1
解决办法
1306
查看次数

双y轴(第二轴)用于ggplot2

我遇到了一个问题,即在第二轴功能的帮助下使用两个不同的数据,如前一篇文章中所述,如何使用-facets-with-a-dual-y-axis-ggplot.

我正在尝试使用geom_point,geom_bar但由于geom_bar数据范围不同,因此在图表中看不到.

这是我尝试过的;

point_data=data.frame(gr=seq(1,10),point_y=rnorm(10,0.25,0.1))
bar_data=data.frame(gr=seq(1,10),bar_y=rnorm(10,5,1))

library(ggplot2)



sec_axis_plot <- ggplot(point_data, aes(y=point_y, x=gr,col="red")) +  #Enc vs Wafer
geom_point(size=5.5,alpha=1,stat='identity')+
geom_bar(data=bar_data,aes(x = gr, y = bar_y, fill = gr),stat = "identity") +
scale_y_continuous(sec.axis = sec_axis(trans=~ .*15,
                                         name = 'bar_y',breaks=seq(0,10,0.5)),breaks=seq(0.10,0.5,0.05),limits = c(0.1,0.5),expand=c(0,0))+

facet_wrap(~gr, strip.position = 'bottom',nrow=1)+
theme_bw()
Run Code Online (Sandbox Code Playgroud)

可以看出bar_data被删除了.是否可以在这种情况下将它们一起绘制?

谢谢

在此输入图像描述

r ggplot2

4
推荐指数
1
解决办法
4864
查看次数

在scale_shape_manual中分配40个或更多形状

我有一个超过40个因子级别的数据框,我想为每个级别分配不同的形状.然而,如图所示scale_shapes_tableggplot2,我只能分配26他们与某!,",#等等.

在此输入图像描述

但我知道在python或jmp中你可以分配许多形状(如星号,左三角形,直角三角形,矩形等).它也有可能ggplot2吗?

data=data.frame(gr=seq(1,40), x1=runif(40), y1=runif(40))
library(ggplot2)
ggplot(data=data,aes(x=x1,y=y1,shape=factor(gr),col=factor(gr)))+
  geom_point(alpha = 0.3,size=4,stroke=1.4) +
  scale_shape_manual(values=c(0:40))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

4
推荐指数
3
解决办法
6779
查看次数

删除包含特定字符串的组

我有一个关于删除其行中包含某些字符串的组的问题,例如,如果包含..我想在不破坏管道的情况下实现这一目标.我的意思是不使用任何join功能.

示例数据

vals <- c("good","bad",'ugly',"good","bad.","ugly")

    gr <- gl(2,3)

vals gr
1 good  1
2  bad  1
3 ugly  1
4 good  2
5 bad.  2
6 ugly  2

df <- data.frame(vals,gr)
Run Code Online (Sandbox Code Playgroud)

我试过了

library(dplyr)
        df%>%
          filter(!grepl("\\.",vals))
Run Code Online (Sandbox Code Playgroud)

它只删除符合条件的行.但我想删除整个gr 2.

 vals gr
1 good  1
2  bad  1
3 ugly  1
4 good  2
5 ugly  2
Run Code Online (Sandbox Code Playgroud)

r dplyr

4
推荐指数
1
解决办法
113
查看次数

删除 geom_tile 中的空白并匹配 geom_vline&amp;hline 位置

使用函数时,我无法删除矩形之间的空白geom_tile

df <- data.frame(
  x = c(seq(2,16,2),seq(17,39,2)),
  y = c(rep(c(seq(8,26,2),seq(27,45,2)),each=20)),
  z = c(1:400))

library(ggplot2)
ggplot(df, aes(x, y)) +
  geom_tile(aes(fill = factor(z)), colour = "grey50")+
  geom_vline(aes(xintercept=6),linetype="dashed",colour="red",size=1)+
  geom_hline(aes(yintercept=24),linetype="dashed",colour="red",size=1)+
  scale_x_continuous(expand = c(0, 0),breaks=seq(0,50,1))+
  scale_y_continuous(expand = c(0, 0),breaks=seq(0,50,1))+
  theme(legend.position = "none")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

直到这里我明白为什么会发生这种情况。为了继续前进,我可以转换x and y为因子水平以消除空间!但这次我失去了geom_vlinegeom_hline台词。这可能是转换x and y因子水平发生的。

ggplot(df, aes(factor(x), factor(y))) +
  geom_tile(aes(fill = factor(z)), colour = "grey50")+
  geom_vline(aes(xintercept=6),linetype="dashed",colour="red",size=1)+
  geom_hline(aes(yintercept=24),linetype="dashed",colour="red",size=1)+
  #scale_x_continuous(expand = c(0, 0),breaks=seq(0,50,1))+
  #scale_y_continuous(expand = c(0, 0),breaks=seq(0,50,1))+
  theme(legend.position = "none")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我添加因子级别来geom_vline&geom_hline得到这个错误时!

UseMethod("rescale") 中的错误:没有适用于“factor”类对象的“rescale”方法 …

r ggplot2

4
推荐指数
1
解决办法
2784
查看次数

读取数据时删除包含某些字符串的列:python

我正在读取目录中的 .txt 文件,并希望删除包含某些特定字符串的列。

for file in glob.iglob(files + '.txt', recursive=True):
    
    cols = list(pd.read_csv(file, nrows =1))
    
    df=pd.read_csv(file,header=0, skiprows=0, skipfooter=0, usecols =[i for i in cols if i.str.contains['TRIVIAL|EASY']==False])
Run Code Online (Sandbox Code Playgroud)

当我这样做时我得到

df=pd.read_csv(文件,header=0,skiprows=0,skipfooter=0,usecols =[i for i >in cols if i.str.contains['PASS']==True])

属性错误:“str”对象没有属性“str”

我无法弄清楚我需要修复哪一部分?

根据 pandas 中包含特定字符串的列名称选择列

根据字符串条件删除列

属性错误:“str”对象没有属性“str”

删除 Pandas 中以特定字符串结尾的多列

python string dataframe pandas

4
推荐指数
1
解决办法
896
查看次数

使用 R 绘制 3D 透明球体内部的轨迹图

我想制作df一个透明 3d 球体内部的轨迹图。

我搜索了 stackoverflow,但找不到相同的问题。因此,它可能对每个对其向量的轨迹感兴趣的人有所帮助。

df会是这样的

df <- data.frame(mx=runif(100,-0.05,0.05),
             my=runif(100,-1,1),
             mz=runif(100,-0.5,0.5))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

plot transparency r rgl

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

标签 统计

r ×9

dplyr ×5

ggplot2 ×3

dataframe ×1

difference ×1

pandas ×1

plot ×1

python ×1

rgl ×1

string ×1

tidyr ×1

transparency ×1