Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中,如何对每个元素的条件进行取整?_R - Fatal编程技术网

在R中,如何对每个元素的条件进行取整?

在R中,如何对每个元素的条件进行取整?,r,R,下面是示例数据表 我想有条件地舍入任何超过60到2位小数的元素,而不使用for循环 x <- data.frame(c1=c(1,2,3,8,1,300.234), c2=c(5.234,5,6,3,3.1,4.233), c3=c(7,6,8,4.3,2,60.191), c4=c(4,1,9.8,1,9,1), c5=c(3,8,1,7,3,5),

下面是示例数据表

我想有条件地舍入任何超过60到2位小数的元素,而不使用for循环

x <- data.frame(c1=c(1,2,3,8,1,300.234),
                c2=c(5.234,5,6,3,3.1,4.233),
                c3=c(7,6,8,4.3,2,60.191),
                c4=c(4,1,9.8,1,9,1),
                c5=c(3,8,1,7,3,5),
                c6=c(2,3,5,2,5,7),
                row.names = c("r1","r2","r3","r4","r5","r6"))
四舍五入后,函数输出应为:

        c1    c2     c3  c4 c5 c6
r1   1.000 5.234  7.000 4.0  3  2
r2   2.000 5.000  6.000 1.0  8  3
r3   3.000 6.000  8.000 9.8  1  5
r4   8.000 3.000  4.300 1.0  7  2
r5   1.000 3.100  2.000 9.0  3  5
r6   300.23 4.233  60.19  1.0  5  7
试试这个
sapply(x,函数(y)ifelse(y>60,圆(y,2),y))
试试这个
sapply(x,函数(y)ifelse(y>60,四舍五入(y,2),y))

但是有些>60的数字有一位和三位小数。你能解释一下你的逻辑吗?试试
x%>%mutate\u all(funs(如果其他(.>60,as.character(round(,1)),))
不知道为什么会有两个**标记。我只是想用粗体显示已更改的元素。让我试着纠正它。简单地说,
x[x>60]60],2)
但是你的>60个数字中有些有一位和三位小数。你能解释一下你的逻辑吗?试试
x%>%mutate\u all(funs(如果其他(.>60,as.character(round(,1)),))
不知道为什么会有两个**标记。我只是想用粗体显示已更改的元素。让我试着纠正它。只需
x[x>60]60],2)
        c1    c2     c3  c4 c5 c6
r1   1.000 5.234  7.000 4.0  3  2
r2   2.000 5.000  6.000 1.0  8  3
r3   3.000 6.000  8.000 9.8  1  5
r4   8.000 3.000  4.300 1.0  7  2
r5   1.000 3.100  2.000 9.0  3  5
r6   300.23 4.233  60.19  1.0  5  7