【发布时间】:2020-01-12 11:30:32
【问题描述】:
我是 R Studio 新手,正在学习数据框。
我正在尝试将新列“uniqueID”添加到我的数据框“人口”中,并为该新列中的每一行添加唯一值。没问题,我可以像这样追加一个新列:Populations$uniqueID
但是,我在为新列下的每一行添加唯一值时遇到了麻烦。这些值应该是现有列“位置”、“变体”和“时间”中每一行中的值的组合。因此,对于每一行,新列 uniqueID 的值应该类似于“LocationVariantTime”(例如“CaliforniaMedium1953”)。这是我正在尝试的代码,使用paste(),但这绝对是错误的。我需要弄清楚如何获取每一行的值。
Populations$uniqueID <- paste(Populations$location, Populations$variant, Populations$time)
这是我查看数据框时的输出。没有新的数据列:https://share.getcloudapp.com/7Kuykdg4
我得到的错误是:
$<-.data.frame(*tmp*, uniqueID, value = character(0)) 中的错误:
替换有0行,数据有280932
提前感谢您帮助正在学习的人,
【问题讨论】:
-
您可以考虑使用您正在获得的数据和输出以及您期望获得的输出的示例来扩展您的问题。我认为您当前的解决方案
d <- data.frame(x = c(1,2,3), y=c("A","B","C")) d$a <- paste0(d$x, d$y)没有问题,因为它似乎工作正常。 -
谢谢,这是我得到的输出示例,但正如您所见,没有包含文本数据的新列。关于如何调整代码以将值包含在新列中的任何想法? share.getcloudapp.com/7Kuykdg4 我得到的错误是: $tmp, uniqueID, value = character(0)) 中的错误:替换有 0 行,数据有 280932 我很感激!
-
尝试检查您的代码是否有拼写错误等。正如您在上面的示例中看到的那样,您的代码应该可以工作。尝试将
paste的结果保存在其他地方,看看它是什么。从错误来看,它应该是字符(0),这没有多大意义。尝试关注Population$uniqueID <- rnorm(nrow(Population))。
标签: r