data <- data.frame(id = c("10001", "10002", "10003", "10004"), V1 = c(10,11,15,9.3), V2 = c(5,7,21,30.2), V3 = c(10.3, 11, 19, 12))
> data
id V1 V2 V3
1 10001 10.0 5.0 10.3
2 10002 11.0 7.0 11.0
3 10003 15.0 21.0 19.0
4 10004 9.3 30.2 12.0
Run Code Online (Sandbox Code Playgroud)
如何将所有小数乘以100并使数据如下所示:
> data
id V1 V2 V3
1 10001 10 5 1030
2 10002 11 7 11
3 10003 15 21 19
4 10004 930 3020 12
Run Code Online (Sandbox Code Playgroud)
sapply沿着数字列并用于ifelse将任何元素与小数部分相乘,然后使用cbind以下内容将原始数据的第一列相乘:
cbind(data[1],sapply(data[-1],function(x) ifelse(x%%1,x*100,x)))
id V1 V2 V3
1 10001 10 5 1030
2 10002 11 7 11
3 10003 15 21 19
4 10004 930 3020 12
Run Code Online (Sandbox Code Playgroud)