首页 > 解决方案 > 在R中查找每个列表中的最后一个数字是偶数还是奇数

问题描述

如何确定列表中的最终数字是偶数还是奇数,然后将该行放入数据框中。

我有多个以奇数或偶数“圈数”结尾的 csv 文件(即下面的 #17 和 26)

Total time  10:00.61
Lap times
01      00:07.46
02      00:05.64
03      00:01.07
04      00:01.04
05      00:04.71
06      00:06.43
07      00:12.52
08      00:07.34
09      00:05.46
10      00:05.81
11      00:05.52
12      00:06.51
13      00:10.75
14      00:00.83
15      00:03.64
16      00:02.75
17      00:01.20

还有这个...

Total time  10:00.61
Lap times
01      00:07.46
02      00:05.64
03      00:01.07
04      00:01.04
05      00:04.71
06      00:06.43
07      00:12.52
08      00:07.34
09      00:05.46
10      00:05.81
11      00:05.52
12      00:06.51
13      00:10.75
14      00:00.83
15      00:03.64
16      00:02.75
17      00:01.20
18      00:06.17
19      00:04.40
20      00:00.75
21      00:00.84
22      00:01.29
23      00:02.31
24      00:03.04
25      00:02.85
26      00:05.86

我使用这个循环来浏览 csv 文件

output = lapply(files, function(x) {
  dat = read.csv(x, header= TRUE) 
  dat = dat[-c(1),]
  dat = as.data.frame(dat)
  dat = separate(data = dat, col = dat, into = c("lap", "duration"), sep = 
  "\\      ")
})

然后输出看起来像这样

[[1]]
     lap duration
1     01 00:07.46
2     02 00:05.64
3     03 00:01.07
4     04 00:01.04
5     05 00:04.71
6     06 00:06.43
7     07 00:12.52
8     08 00:07.34
9     09 00:05.46
10    10 00:05.81
11    11 00:05.52
12    12 00:06.51
13    13 00:10.75
14    14 00:00.83
15    15 00:03.64
16    16 00:02.75
17    17 00:01.20


[[2]]
    lap duration
1    01 00:07.46
2    02 00:05.64
3    03 00:01.07
4    04 00:01.04
5    05 00:04.71
6    06 00:06.43
7    07 00:12.52
8    08 00:07.34
9    09 00:05.46
10   10 00:05.81
11   11 00:05.52
12   12 00:06.51
13   13 00:10.75
14   14 00:00.83
15   15 00:03.64
16   16 00:02.75
17   17 00:01.20
18   18 00:06.17
19   19 00:04.40
20   20 00:00.75
21   21 00:00.84
22   22 00:01.29
23   23 00:02.31
24   24 00:03.04
25   25 00:02.85
26   26 00:05.86

如何查看最后一行是偶数还是奇数(即分别为第 17 行和第 26 行)?然后我可能想把最后几行放到一个单独的数据框中。

标签: r

解决方案


首先,您可以使您的阅读过程变得更加简单。

output <- lapply(files, read.csv, skip = 1)

现在,对于奇数/偶数行。

n <- sapply(output, nrow)
ifelse(n %% 2 == 0, "even", "odd")

请注意,代替字符值"even""odd"您可以ifelse返回任何您选择的内容。


推荐阅读