我使用pmax
和pmin
从每一行提取最大值和最小值。我有一些统计上不显著的值,这些值被〈〉包围。由于某种原因,pmax
和pmin
仍然考虑了这些值,然后我无法计算显着值之间的差异。下面是一个例子:
| ID|Var1|Var2|Var3|Var4|
| --------------|--------------|--------------|--------------|--------------|
| A|1|五!|不适用|10个|
| B|二十|不适用|不适用|三|
| C|二十!|10个|不适用|不适用|
| D|不适用|不适用|三十|不适用|
| E|十个!|不适用|不适用|不适用|
我要!xx!值不包括在我执行以下操作时:
DF1 = data.frame(ID=c("A","B","C","D","E"),
Var1=c("1","20","!20!","NA","!10!"),
Var2=c("!5!","NA","10","NA","NA"),
Var3=c("NA","NA","NA","30","NA"),
Var4=c("10","NA","NA","NA","NA"),
Var5=c("NA","!50!","20","NA","NA"))
DF1$max <- pmax(DF1$Var1,DF1$Var2,DF1$Var3,DF1$Var4,na.rm = TRUE)
DF1$min <- pmin(DF1$Var1,DF1$Var2,DF1$Var3,DF1$Var4,na.rm = TRUE)
这导致我得到以下结果:
当以下是我想要的:
我该如何预防!pmax
和pmin
占用xx!个值?我感谢任何帮助!
2条答案
按热度按时间ecbunoof1#
假设您的
"NA"
实际上是NA
(不是字符串文字):我们可以这样做:
结果存储方式:
注意,我们还需要添加
na.rm=FALSE
。或者,我们可以像这样使用
readr::parse_number
:goqiplq22#
下面是一个使用
dplyr
的解决方案。