gpt4 book ai didi

r - 如何使用包含 "<"-operator 的条目执行计算?在这种情况下,将上限除以二

转载 作者:行者123 更新时间:2023-12-04 05:59:10 25 4
gpt4 key购买 nike

我有一个生态数据的数据框,其中一些条目低于化学中称为 LOQ(定量限)的值。这些测量报告为“低于 LOQ”。我想做的是将这些值更改为 LOQ 的一半。我可能会找到删除“<”的代码,但我不知道要将哪个条目除以 2。

#creating df 
x1 <- c(1,2,"<1")
x2 <- c(3,"<4",3)
x3 <- c(1,2,3)
df <- data.frame(x1,x2,x3)
df

x1 x2 x3
1 1 3 1
2 2 <4 2
3 <1 3 3

我希望结果如下:

##### result #######
x1 <- c(1,2,0.5)
x2 <- c(3,2,3)
x3 <- c(1,2,3)
result <- data.frame(x1,x2,x3)

x1 x2 x3
1 1.0 3 1
2 2.0 2 2
3 0.5 3 3

因此,基本上,< 符号被忽略,剩余值除以 2。关于如何执行此操作的任何想法?

最佳答案

利用矩阵对象可以在 1 或 2 维中引用的事实。

m <- as.matrix(df) 
isLT <- function(t) substr(t,1,1) == '<'
islt <- which(isLT(m))
delLT <- function(x) substr(x,2,length(x))
m[islt] <- delLT(m[islt])
mode(m) <- 'numeric'
m[islt] <- m[islt] / 2

关于r - 如何使用包含 "<"-operator 的条目执行计算?在这种情况下,将上限除以二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57557536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com