【发布时间】:2011-04-24 23:25:48
【问题描述】:
我正在尝试将cat() 用作apply() 中的函数。我可以几乎让 R 做我想做的事,但是在返回结束时我得到了一些非常令人困惑的(对我而言)NULLS。这是一个愚蠢的例子,强调我得到了什么。
val1 <- 1:10
val2 <- 25:34
values <- data.frame(val1, val2)
apply(values, 1, function(x) cat(x[1], x[2], fill=TRUE))
这在 R 接受它并运行时“有效”,但我不明白结果。
> apply(values, 1, function(x) cat(x[1], x[2], fill=TRUE))
1 25
2 26
3 27
4 28
5 29
6 30
7 31
8 32
9 33
10 34
NULL
但是,我想得到:
> apply(values, 1, function(x) cat(x[1], x[2], fill=TRUE))
1 25
2 26
3 27
4 28
5 29
6 30
7 31
8 32
9 33
10 34
那么,如何删除最后的 NULL?
【问题讨论】:
-
你看过 plyr 包中的 ddply 吗?
-
没有。我从来没有掌握 plyr 的窍门。通常当我需要真正重塑数据时,我会将数据框粘贴到数据库中。并不是说 SQL 一定更好,但与 Postgres 相比,我通常比 R 更自在。
-
但是,我应该花时间学习如何使用 plyr。下周我要休息一段时间来处理家庭事务。学习 plyr 会让我在晚上有事可做。