小编Mar*_*ijn的帖子

R-基于对其他行中的值的引用的条件计算

我想在另一行的同一列中引用一个值.我有一栏有开始和停止时刻.我想添加一个列,指示机器是否正在运行.

这是数据的样子:

c("", "", "start", "", "", "stop", "", "", "start", "stop", "")
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

 [1,] ""      ""       
 [2,] ""      ""       
 [3,] "start" "running"
 [4,] ""      "running"
 [5,] ""      "running"
 [6,] "stop"  "running"
 [7,] ""      ""       
 [8,] ""      ""       
 [9,] "start" "running"
[10,] "stop"  "running"
[11,] ""      ""      
Run Code Online (Sandbox Code Playgroud)

在第二栏中我想做:

  • 如果同一行第一列等于开始 - >运行
  • 如果前一行第一列等于停止 - >""
  • ELSE与第二列的前一行的值相同

我怎么能用R优雅地做到这一点?

非常感谢您提前输入!

if-statement r reference

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

如何计算数组的子集组中的项数大于该数组中的特定值?

我想计算一个数组的子集组中的项数大于R中该数组中的特定值.参见下面的示例,每年都有一个外部基准,它是给定数据的一部分(这个不是数据集的平均值).对于给出一年基准的每一行,我想添加一列,其中重量大于基准的男性数量; 并且一列的女性数量大于基准.

> MyData
   year      type weight DesiredOutput1 DesiredOutput2
1  1990    Female     78             NA             NA
2  1990      Male     74             NA             NA
3  1990    Female     80             NA             NA
4  1990      Male     90             NA             NA
5  1990      Male     94             NA             NA
6  1990      Male     70             NA             NA
7  1990    Female     65             NA             NA
8  1990    Female     61             NA             NA
9  1990 benchmark     78              4              1
10 1990    Female     71             NA             NA
11 1990      Male     91             NA             NA
12 1990    Female     70             NA …
Run Code Online (Sandbox Code Playgroud)

r count subset data.table

2
推荐指数
1
解决办法
991
查看次数

R-如何检查一行中的值是否与上一行中的值不同?

我想在我的表中添加一列,该列将值与现有列“农场”中的先前值进行比较(以检查其是否相同);并且还控制当前行中的值是否为“ NULL”。目的是当该行的“农场”列中的值与“农场”列的上一行中的值不同时,在新的列“切换”中取回值“ new”。(例如,当服务器场中的值为“ NULL”时,我想返回“”)

请参阅以下所需的输出:

farm    switch
A   
A   
NULL    
B   new
B   
B   
A   new
A   
A   
B   new
B   
B   
NULL    
A   new
A   
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码解决此问题:

#To add a new column switch
MyData["switch"] <- NA

#To check if the value is different from the previous row; and if the value is different from NULL
MyData$switch <- ifelse((MyData$farm == lag(MyData$farm))||MyData$farm=="NULL","",MyData$farm)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用此代码时,添加的列只有空值吗?有人可以澄清我做错了什么,并通过可能有效的代码帮助我吗?

if-statement r lag

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

R - 如何将 XML 转换为 R 中具有正确结构的数据帧?

我想将 XML 文件转换为数据框。我发现了一些允许我读取 XML 数据的函数,但是我无法获得与初始 XML 文件具有相同结构的数据框(= 如果您在 Excel 中打开 XML 文件将获得的结构)。

这是我的原始 XML 代码:

<Data>
<Frame timestamp='17/09/2014  20:55:00.902' timecode='75299902' >
<Object type='Taxi' DISTANCE='3037' VOLUME='1668' id='15593' code='0' />
<Object type='Taxi' DISTANCE='3605' VOLUME='931' id='15603' code='4' />
<Object type='Bus' DISTANCE='3563' VOLUME='488' id='15604' code='9' />
<Object type='Taxi' DISTANCE='4942' VOLUME='57' id='15624' code='1' />
<Object type='Taxi' DISTANCE='784' VOLUME='47' id='15625' code='10' />
<Object type='Taxi' DISTANCE='3301' VOLUME='2041' id='15626' code='42' />
<Object type='Bus' DISTANCE='2040' VOLUME='2945' id='15630' code='27' />
<Object type='Airplane' DISTANCE='2865' VOLUME='2722' Z='0' />
</Frame>
<TrackingFrame timestamp='17/09/2014 20:54:59.771' …
Run Code Online (Sandbox Code Playgroud)

xml r

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

标签 统计

r ×4

if-statement ×2

count ×1

data.table ×1

lag ×1

reference ×1

subset ×1

xml ×1