如何使用R对列进行集群

如何使用R对列进行集群,r,R,我有一个数据帧 numbers = 1:4 letters = factor(c("a", "b", "c", "d")) df <- data.frame(numbers, letters) numbers letters 1 1 a 2 2 b 3 3 c 4 4 d 有没有一种方法可以用R来实现这一点?R有许多不同的方法来对数据进行聚类。下面是使用k-means的方法,k-means是最

我有一个数据帧

numbers = 1:4
letters = factor(c("a", "b", "c", "d"))
df <- data.frame(numbers, letters)
numbers letters
1       1       a
2       2       b
3       3       c
4       4       d

有没有一种方法可以用R来实现这一点?

R有许多不同的方法来对数据进行聚类。下面是使用k-means的方法,k-means是最流行的:

# Simulate data
data = data.frame(var1=rnorm(100), var2=rnorm(100), var3=c('a', 'b')[sample(2, 100, replace=T)])

# Convert factor variables to numeric 'dummy' variables
data.num = model.matrix(~ . - 1, data)

# Assign clusters
data$cl = kmeans(data.num, 2)$cluster

# Plot
dev.new(width=4, height=4)
with(data, plot(var1, var2, type='n'))
with(data, text(var1, var2, var3, col=cl))


在这里,这两个聚类是通过颜色识别的,因为数据是正态分布的,所以没有意义,但是你知道了……

聚类的模式是什么?鉴于所示的数字和字母顺序,我还不清楚。无论如何,要向数据帧添加新列,请查看
transform()
$
运算符。@Chase我相信OP是在询问如何获取群集,而不仅仅是如何将它们分配给数据帧
# Simulate data
data = data.frame(var1=rnorm(100), var2=rnorm(100), var3=c('a', 'b')[sample(2, 100, replace=T)])

# Convert factor variables to numeric 'dummy' variables
data.num = model.matrix(~ . - 1, data)

# Assign clusters
data$cl = kmeans(data.num, 2)$cluster

# Plot
dev.new(width=4, height=4)
with(data, plot(var1, var2, type='n'))
with(data, text(var1, var2, var3, col=cl))