我有一个1GB大小的数据帧,下面是一个虚拟帧
df <- data.frame(group=rep(c("A", "B", "C","D","E","F","G","H"), each=4),height=sample(100:150, 16))
df
group height
1 A 105
2 A 119
3 B 108
4 B 114
5 C 109
6 C 111
7 D 148
8 D 121
9 E 133
10 E 101
11 F 143
12 F 135
13 G 147
14 G 141
15 H 150
16 H 145
我的目标是改变列组的名称,比如说所有的B、H和G都改为NC,A全部改为PC,其他的改为NON 所以我试了下面的一句话。在
^{pr2}$但它抛出了以下错误
Error in `[<-.factor`(`*tmp*`, df$group %in% de, , value = "nc") :
incorrect number of subscripts on matrix
In addition: Warning message:
In `[<-.factor`(`*tmp*`, df$group %in% de, , value = "nc") :
invalid factor level, NA generated
最后,数据帧df应该是这样的
df
group height
1 PC 105
2 PC 119
3 NC 108
4 NC 114
5 NON 109
6 NON 111
7 NON 148
8 NON 121
9 NON 133
10 NON 101
11 NON 143
12 NON 135
13 NC 147
14 NC 141
15 NC 150
16 NC 145
任何关于R或熊猫的建议都会很棒。 谢谢你
带有^{} 和布尔掩码的Pandas/Numpy解决方案:
双
^{pr2}$np.where
的解决方案:您也可以替换组名称,如下所示
在R中,您可以尝试:
先转换为字符,然后直接替换值。
编辑:
更新问题时,可以尝试
^{pr2}$ifelse
。当然,您也可以通过这种方法覆盖group
列。相关问题 更多 >
编程相关推荐