R 将一个数转换成负数
在这样的数据中:R 将一个数转换成负数,r,R,在这样的数据中: data.frame (com = c("col1","em"), stock1 = c(2.6, 0), aim = c(0,3.10)) 如何才能将减号添加到具有com“em”的行的所有行中 预期结果示例: data.frame (com = c("col1","em"), stock1 = c(2.6, 0), aim = c(0,-3.10)) com stock1 aim 1 col1 2.6 0.0 2 em 0.0 -3.1 这是怎么
data.frame (com = c("col1","em"), stock1 = c(2.6, 0), aim = c(0,3.10))
如何才能将减号添加到具有com“em”的行的所有行中
预期结果示例:
data.frame (com = c("col1","em"), stock1 = c(2.6, 0), aim = c(0,-3.10))
com stock1 aim
1 col1 2.6 0.0
2 em 0.0 -3.1
这是怎么回事
xy <- data.frame (com = c("col1","em"), stock1 = c(2.6, 0), aim = c(0,3.10))
find.com <- -which(names(xy) == "com")
xy[xy$com == "em", find.com] <- -xy[xy$com == "em", find.com]
xy
com stock1 aim
1 col1 2.6 0.0
2 em 0.0 -3.1
xy使用ifelse
:
df1 <- data.frame (com = c("col1","em"), stock1 = c(2.6, 0), aim = c(0,3.10))
df1$aim <- ifelse(df1$com == "em", -df1$aim, df1$aim)
df1
com stock1 aim
1 col1 2.6 0.0
2 em 0.0 -3.1
df1如果stock1
列中的值>0怎么办?而且可能有更多的数字列,而不仅仅是两个(但我显然只是在这里猜测)。如果一行中的'em'已经有了一个负号,那就不必理会了吗?@RuiBarradas你当然是对的。此解决方案假设所有数字都为正,但情况可能并非如此。