【问题标题】:Splitting data set and creating two groups拆分数据集并创建两个组
【发布时间】:2019-08-23 20:31:54
【问题描述】:

对于你们中的许多人来说,这应该是一个非常简单的代码问题,但我是 R 的新手,并且正在努力学习基础知识。

我有一个包含 500 个观察值的简单 csv 数据,带有一个标题,我试图将它分成两组(在第 251 行剪切)并将它们命名为 A 和 B,以便我继续分别对它们运行测试。

我尝试了拆分功能,但我无法正确获取代码。任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • dataseta <- dataset[as.numeric(rownames(df))<=251,]; datasetb <- dataset[as.numeric(rownames(df))>251,]?
  • split(df, rep(c("A", "B"), each=250)) 将为您提供两个数据框的列表。
  • 数据集中是否有让您想在第 251 行拆分它们的特征?还是只是将数据集分成两半?

标签: r split grouping


【解决方案1】:

怎么样

A=df[1:251,]
B=df[252:nrow(df),]

这够漂亮吗?

【讨论】:

  • 这个功能也可以,我认为它和 Ronak 建议的一样。但是,我仍然无法按照我对他的帖子的回答方式查看数据或运行 t 检验。有什么建议吗?
  • @holandgents506 这听起来像是格式问题。您能否使用dput() 发布您的数据样本,否则请至少告诉我们您的数据属于哪一类。
【解决方案2】:

您可以使用split,它将返回两个数据框的列表。

list_df <- split(df, rep(c(1, 2), each = nrow(df)/2))

但如果你只想要两个组,你可以这样做

A = df[1:250, ]
B = df[251:500, ]

【讨论】:

  • 谢谢,这有帮助。但是,当我只键入“A”来查看值时,我将它们全部作为“NA”,对于 A 或 B。知道为什么会这样吗?此外,如果我尝试运行 t.test,只需键入“t.test(a,b)”,我也会收到一条错误消息。像“预测值“x”这样的东西没有足够的条目。
  • @holandgents506 你把数据读入 R 了吗?这叫什么?我在这里使用了df。你能查一下nrow(df)吗?
  • 嗨,Ronak,这已经解决了。对于 t.test(a,b) 它工作正常,但如果我尝试运行 Wilcoxon 测试, wilcox.test(a,b)$p.val 我会收到一条错误消息。知道为什么吗?再次感谢
  • @holandgents506 您想如何应用 wilcox.test ?你可以做wilcox.test(unlist(A), unlist(B))或申请pairwise.wilcox.test检查stackoverflow.com/questions/21271449/…
猜你喜欢
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
相关资源
最近更新 更多