R聚合将字符串转换为数字。为什么会发生这种情况,我该如何避免呢?

问题描述 投票:0回答:1

为什么此代码仅将数字打印到控制台?如何获得名称为1到13且内容为a,n的列表; B,O;等等?

aggregate(letters, by = data.frame(rep(1:13, 2)), head, simplify = F)

我正在使用R 3.5.1。

我还没有发现重复。以下是我迄今为止在类似主题上发现的内容。

一个类似但不完全相同的问题:

R Aggregate FUN=head

一个显然类似的问题,实际上是关于聚合数字:

R: Aggregate character strings

r
1个回答
1
投票

letters被强制转换为数据帧。它成为一个因素。因子在R中存储为整数。如果某些级别丢失,它们通常看起来像整数。试试这个:

aggregate(data.frame(letters, stringsAsFactors = F), by = data.frame(rep(1:13, 2)), head, simplify = F)

© www.soinside.com 2019 - 2024. All rights reserved.