我有以下数据并尝试将CCG和Pract更改为数字,因此我可以使用stan或Winbugs ...当我尝试更改它时,它似乎改变了数据的顺序.. 我想在不改变数据顺序的情况下将CCG和Pract更改为数字...我努力但我无法做到。 我正在努力解决这个基本问题而不是编写错误代码....请帮助..
我有以下数据
CCG pract Deno Numer Points Excep
1 01C N81049 49 46 4 4
2 01C N81022 28 26 4 23
3 01C N81632 66 64 4 4
4 01C N81069 15 14 4 3
5 01C N81062 98 89 4 9
6 01C N81033 31 28 4 9
我尝试使用as.integer()更改为整数,我正在接受...
CCG pract Deno Numer Points Excep
1 20 6621 160 144 41 36
2 20 6594 130 117 41 18
3 20 6698 179 164 41 36
4 20 6640 57 46 41 25
5 20 6633 214 191 41 62
6 20 6605 137 119 41 62
通过检查Deno和Numer,很明显数据的顺序已经改变了......为什么CCG不是从1开始?
我想要
CCG pract Deno Numer Points Excep
1 01C N81049 49 46 4 4
2 01C N81022 28 26 4 23
3 01C N81632 66 64 4 4
4 01C N81069 15 14 4 3
5 01C N81062 98 89 4 9
6 01C N81033 31 28 4 9
改为这样的
CCG pract Deno Numer Points Excep
1 1 1 49 46 4 4
2 1 1 28 26 4 23
3 1 1 66 64 4 4
4 1 1 15 14 4 3
5 1 1 98 89 4 9
6 1 1 31 28 4 9
请帮帮我..
答案 0 :(得分:2)
在R中,因子在内部表示为整数,链接到因子水平表。 AFAIK,这些内部整数是根据因子级别的词典顺序分配的,因此57得到的代码高于238。
as.integer()
将提取此内部整数编码。如你所知,这不是很有用。 (老实说,我不明白为什么R在将as.integer()
应用于具有整数作为因子水平的因子时会这样做。)
解决方案:首先转换为字符,然后转换为整数。 as.integer(as.character(Deno))