【发布时间】:2014-01-22 10:02:33
【问题描述】:
我有一个这样的数据框:
Id relationship age
1 1001 1 60
2 1001 2 50
3 1001 3 20
4 1002 1 70
5 1002 2 68
6 1002 3 23
7 1002 3 27
8 1002 3 27
9 1002 3 23
10 1003 1 60
11 1003 2 40
12 1003 3 20
13 1003 3 20
我想在新列中为同一 ID 的所有成员写下每个 ID 的大年龄并将其命名为 maxage。 我需要这个结果:
Id relationship age maxage
1 1001 1 60 60
2 1001 2 50 60
3 1001 3 20 60
4 1002 1 70 70
5 1002 2 68 70
6 1002 3 23 70
7 1002 3 27 70
8 1002 3 27 70
9 1002 3 23 70
10 1003 1 60 60
11 1003 2 40 60
12 1003 3 20 60
13 1003 3 20 60
【问题讨论】:
-
当我使用这个命令时 R 说:错误:无法分配大小为 1.5 Gb 的向量另外:警告消息:1:在
[.data.frame(x, c(m$xi, if (all. x) m$x.alone), c(by.x, seq_len(ncx)[-by.x]), : 达到 4076Mb 的总分配: 见帮助(memory.size) 2: 在[.data.frame(x, c(m$xi, if (all.x) m$x.alone), c(by.x, seq_len(ncx)[-by.x]), : 达到 4076Mb 的总分配:见帮助(memory.size ) 3: In[.data.frame(x, c(m$xi, if (all.x) m$x.alone), c(by.x, seq_len(ncx)[-by.x]), : 达到总数分配 4076Mb:见 help(memory.size) -
该代码在小数据上绝对可以正常工作。听起来你的内存已经用完了。如果可能,尝试开始一个新的 R 会话,或者接受 @jlhoward 的建议并使用
data.table来避免复制并加快速度。
标签: r