小编kim*_*221的帖子

找到R中最大值的索引

我有以下数据框surge:

MeshID    StormID Rate Surge Wind
1         1412 1.0000E-01   0.01 0.0
2         1412 1.0000E-01   0.03 0.0
3         1412 1.0000E-01   0.09 0.0
4         1412 1.0000E-01   0.12 0.0
5         1412 1.0000E-01   0.02 0.0
6         1412 1.0000E-01   0.02 0.0
7         1412 1.0000E-01   0.07 0.0
1         1413 1.0000E-01   0.06 0.0
2         1413 1.0000E-01   0.02 0.0
3         1413 1.0000E-01   0.05 0.0
Run Code Online (Sandbox Code Playgroud)

我使用以下代码来查找每次风暴的最大浪涌值:

MaxSurge <- data.frame(tapply(surge[,4], surge[,2], max))
Run Code Online (Sandbox Code Playgroud)

它返回:

1412 0.12
1413 0.06
Run Code Online (Sandbox Code Playgroud)

这很好,除了我还希望它包含MeshID在浪涌最大的点处的值.我知道我可能会使用which.max,但我无法弄清楚如何将其付诸行动.我对R编程非常陌生.

r dataframe

19
推荐指数
4
解决办法
2万
查看次数

从Linux上的本地.tar.gz文件安装包

我想将plyr.tar.gz文件中的软件包安装到linux机器上的R软件包库中.我该怎么做呢?我只是将它放在库目录中吗?如果我没有写权限怎么办?

r

16
推荐指数
2
解决办法
5万
查看次数

在bash中将科学记数法转换为十进制

我想将以科学记数法存储的数字转换为浮点小数,这样我就可以对数据进行一些比较.这是在bash脚本中完成的 - 这是代码的一小部分:

while read track_id landfall_num gate_id pres_inter
do
  if [[ $landfall_num == 0001 ]]
  then
     start_flag = true
     echo DING DING $start_flag
     if [[ $pres_inter < 97000 ]]
     then
        echo Strong Storm From North $track_id, $gate_id, $pres_inter
     fi
  fi
done < $file
Run Code Online (Sandbox Code Playgroud)

我的问题是我的<操作数基本上选择了所有压力值,当我使用时,它们以科学记数法存储<,而在我使用时则没有>.我正在研究帕斯卡而不是毫巴的大气压测量.

这是示例输出:

Strong Storm From North 0039988 0017 1.0074E+05

Strong Storm From North 0037481 0018 9.9831E+04
Run Code Online (Sandbox Code Playgroud)

这些风暴都不应该符合选择标准!

bash arithmetic-expressions decimal notation

6
推荐指数
3
解决办法
1万
查看次数

R编程,使用变量命名输出文件

我想使用write.csv语句将输出定向到文件.我想写16个不同的输出文件,用扩展名1到16标记每个文件.

现在写的例子:

    trackfilenums=1:16
    for (i in trackfilenums){
       calculations etc
       write.csv(max.hsi, 'Severity_Index.csv', row.names=F)
    }
Run Code Online (Sandbox Code Playgroud)

我想输出csv文件标记为'Severity_Index_1.csv','Severity_Index_2.csv'等.不确定如何在R语言中执行此操作.

谢谢!金佰利

csv r output

4
推荐指数
1
解决办法
1万
查看次数

bash 中整数比较错误

我正在尝试在 bash 中执行简单的整数比较,我是新使用的,并且我的方法导致错误。任何意见,将不胜感激。

我的基本逻辑是我正在阅读飓风轨迹点。同一 track_id 可能有多个具有不同压力值的条目。我想要做的是将每个 track_id 仅存储一个条目到数组 track_id_poly 中;压力最低的情况。因此,我循环遍历每一行,并尝试将当前压力(对于 $int)与先前的轨道压力($int - 1)进行比较,如果它较低,则用新的较低压力替换先前的数组值。我希望这是有道理的。我的代码如下。

int=0
    while read track_id ppres_inter 
    do
      printf -v pres_inter "%.0f" "$pres_inter"
      echo pressure $pres_inter
      case $int in
      0)
        Track_id_poly[$int]=$track_id
        Pres_inter_poly[$int]=$pres_inter
        ((int=int+1)) ;;
      *)  
       if [[ $track_id == ${Track_id_poly[$int-1]} ]]
       then
         if (( $pres_inter -lt ${Pres_inter_poly[$int-1]} ))
         then
           Track_id_poly[$int-1]=$track_id
           Pres_inter_poly[$int-1]=$pres_inter
         fi
       else  
         Track_id_poly[$int]=$track_id
         Pres_inter_poly[$int]=$pres_inter
         ((int=int+1))
       fi ;;
      esac
    done <$file_poly
    int_poly=$int
    echo Number of polygon crossings from set $i is $int_poly
Run Code Online (Sandbox Code Playgroud)

给我带来问题的行是 $pres_inter 的整数比较。

if (( $pres_inter -lt …
Run Code Online (Sandbox Code Playgroud)

linux bash comparison integer

0
推荐指数
1
解决办法
764
查看次数