Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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,我有一个像这样的df head(df) # Date Mongolia # 2020-04-14 100000 # 2020-04-15 6000 # 2020-04-21 300000 # 2020-04-21 400 # 2020-04-23 20 # 2020-04-23 120 我想把所有四位数或更大的数字除以1000 newdf将类似于: head(newdf) # Date Mongolia # 2020-04

我有一个像这样的df

head(df)
# Date         Mongolia 
# 2020-04-14   100000 
# 2020-04-15   6000 
# 2020-04-21   300000 
# 2020-04-21   400 
# 2020-04-23   20 
# 2020-04-23   120
我想把所有四位数或更大的数字除以1000

newdf将类似于:

head(newdf) 
# Date         Mongolia 
# 2020-04-14   100 
# 2020-04-15   6 
# 2020-04-21   300
# 2020-04-21   400 
# 2020-04-23   20 
# 2020-04-23   120

非常感谢。

我们可以在

df$Mongolia <- ifelse(nchar(df$Mongolia) >=5, df$Mongolia/5, df$Mongolia)

df$Mongolia <- ifelse(nchar(df$Mongolia) >=5, df$Mongolia/5, df$Mongolia)

为什么6000除以1000?这是四位数,说得好。对不起,我想把四位数或更大的数字都除以1000。为什么6000除以1000?这是四位数,说得好。对不起,我想把四位数以上的数字都除以1000。
i1 <- (df$Mongolia %/% 1e4) > 0
df$Mongolia[i1] <-  df$Mongolia[i1]/1000