微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用 R 中数据帧中的值替换不等式 数据

如何解决用 R 中数据帧中的值替换不等式 数据

我有一个涉及多列的数据框,其中存在许多不等式的实例。我想要的是一个 R 脚本,它将识别这些不等式并用实际值替换它们。更具体地说,让我们假设我们有 " 1.0) 替换它。有没有一种通用的方法来做到这一点,这样我就不需要手动查找数据框中的所有不等式并替换它们?

一个简单的例子可能如下:

Col1、Col2、Col3、Col4 2.2、 3.4,4,

我想得到这样的东西:

Col1,Col2,Col3,Col4 2.2,1.5,1
3.4、4、2、5、3 4.2、2、2.1、5 1.3,1,4

解决方法

我们可以用表达式替换 <evaluate

df1[] <-  lapply(df1,function(x) sapply(sub("<","(1/2)*",x,fixed = TRUE),function(y) eval(parse(text = y))))

df1
#  Col1 Col2 Col3 Col4
#1  2.2  1.5  4.0    1
#2  3.4  4.0  2.5    3
#3  4.2  2.0  2.1    5
#4  1.3  1.0  4.0    4

数据

df1 <- structure(list(Col1 = c(2.2,3.4,4.2,1.3),Col2 = c("<3","4","2","1"),Col3 = c("4","<5","2.1","4"),Col4 = c("<2","3","5","<8")),row.names = c(NA,-4L),class = "data.frame")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。