我希望你们其中一位能帮助我 - 我一直在尝试加载不同的方法来做到这一点,似乎无法找到正确的答案。 我对R相当陌生,但一直在编写脚本来格式化一些我拥有的数据。 最终,我会希望每周运行这个脚本作为数据进来。添加一列到引用相应数字/字符的数据框
我有一个品种代码列表(1 - 80)其中许多(但不是全部)的许多(但不是全部)有一个相应的3个字符的国家(如。 GBR或NLD等)。 我想要做的是在我的数据中创建一个新的colum,其中包含国家代码,对应于品种代码。
我遇到的一个问题是,并非所有的数字(1-80)都有相应的国家代码。 所以我不能创建一个载体,因为它们不是同一类型。
如果没有关联的国家代码,我希望国家代码是品种代码的数量。 例如,品种代码6没有关联的国家,所以我想要“6”填充我的新sire_country列中的相关字段。
万一它有帮助,我已经添加了我一直在尝试使用的脚本,无济于事!
#denoting country codes for breed codes 1-80
breed_country<-c("GBR", "GBR", "GBR", "GBR", "GBR", "6", "GBR", "8", "9",
"10",
"11", "GBR", "NZL", "GBR", "GBR", "16", "DNK", "18", "19", "GBR", "21",
"GBR",
"23", "24", "25", "26", "CHE", "28", "29", "30", "31", "32", "33", "34",
"35",
"36", "37", "38", "39", "40", "41", "42", "CZE", "44", "45", "IRL", "AUS",
"POL", "DEU", "50", "51", "SWE", "DEU", "ESP", "55", "56", "57", "58",
"SWE",
"DEU", "DNK", "NZL", "NLD", "CAN", "USA", "66", "67", "68", "USA", "70",
"FRA",
"ITA", "FIN", "JEY", "GGY", "76", "NOR", "78", "79", "80")
breed_id<-c("Sire.Breed")
sire_country<-breed_country[breed_id]
sire_country[is.na("Sire.ID")]<-""
#the output looks like
sire_country
[1] NA
#when I add sire_country to my data frame, I get
sire_country
1 <NA>
2 <NA>
3 <NA>
4 <NA>
5 <NA>
6 <NA>
7 <NA>
8 <NA>
9 <NA>
10 <NA>
11 <NA>
12 <NA>
13 <NA>
14 <NA>
15 <NA>
# "Sire.Breed" is a column containing numerical breed codes in the data
frame: df
# sire_country is what I want the new column with the country codes in to be
called
# if there is no "Sire.ID" present, I want the field to remain blank - I
have used this function elsewhere and it work fine
我的数据是从.csv文件读取。很遗憾,我不能发布它,因为它是保密的。但是,一个虚构的例子是:
animal name breed Mother Father ID Company DOB
1 Alice 2 Vera Tom 123456789012 Heinz 12/05/2017
2 Kate 63 Lucy Jack 123456987147 Google 03/06/2017
(我不能格式化表格好,抱歉)
然后我希望的国家代码,它涉及到的品种(2或63在这种情况下)如下所示:
animal name breed Mother Father ID Company DOB Country
1 Alice 2 Vera Tom 123456789012 Heinz 12/05/2017 GBR
2 Kate 63 Lucy Jack 123456987147 Google 03/06/2017 NLD
道歉,如果我在整个过程中使用了错误的语言,我还在学习! 任何帮助你可以给我非常感激。
谢谢!
能否请您提供您的数据,而不是国家代码本身 –
从数据结构开始,实际上有列。即'data.frame(code = 1:80,country = breed_country)'。你能否给我们提供预期产出的可视化表示(手工创建)。而80行是过度杀伤,10是足以让点。 –
我很努力去理解你想创建的“品种”列和新列的区别。如果您的示例显示了关于“品种”列和期望列的不同场景(例如,“品种”的什么样的值映射到结果列的哪个值),那将会很有帮助。 –