返回满足 R 中多个条件的数据框行(面板数据随机样本)

发布于 2024-12-14 19:45:31 字数 525 浏览 1 评论 0原文

我希望根据唯一 ID 从面板数据创建随机样本。

例如,如果您从以下内容开始:

e = data.frame(id=c(1,1,1,2,2,3,3,3,4,4,4,4), data=c(23,34,45,1,23,45,6,2,9,39,21,1))

并且您想要 2 个唯一 id 的随机样本:

out = data.frame(id=c(1,1,1,3,3,3), data=c(23,34,45,45,6,2))

虽然样本为我提供了随机唯一 id,

sample( e$id ,2)    # give c(1,3)

但我无法弄清楚如何使用逻辑调用来返回所有所需的数据。 我尝试过很多事情,包括:

e[ e$id == sample( e$id ,2) ]   # only returns 1/2 the data

有什么想法吗???它杀了我。

I am hoping to create a random sample from panel data based on the unique id.

For instance if you start with:

e = data.frame(id=c(1,1,1,2,2,3,3,3,4,4,4,4), data=c(23,34,45,1,23,45,6,2,9,39,21,1))

And you want a random sample of 2 unique ids:

out = data.frame(id=c(1,1,1,3,3,3), data=c(23,34,45,45,6,2))

Although sample gives me random unique ids

sample( e$id ,2)    # give c(1,3)

I can't figure out how to use logical calls to return all the desired data.
I have tried a number of things including:

e[ e$id == sample( e$id ,2) ]   # only returns 1/2 the data

Any ideas??? Its killing me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空袭的梦i 2024-12-21 19:45:32

我不完全确定您的预期结果应该是什么,但这对您想要做的事情有用吗?

> e[e$id %in% sample(e$id, 2), ]
   id data
6   3   45
7   3    6
8   3    2
9   4    9
10  4   39
11  4   21
12  4    1

或者也许你想要这个:

> e[e$id %in% sample(unique(e$id), 2), ]
   id data
1   1   23
2   1   34
3   1   45
9   4    9
10  4   39
11  4   21
12  4    1

I'm not entirely sure what your expected result should be, but does this work for what you're trying to do?

> e[e$id %in% sample(e$id, 2), ]
   id data
6   3   45
7   3    6
8   3    2
9   4    9
10  4   39
11  4   21
12  4    1

Or maybe you want this:

> e[e$id %in% sample(unique(e$id), 2), ]
   id data
1   1   23
2   1   34
3   1   45
9   4    9
10  4   39
11  4   21
12  4    1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文