2013-07-25 2 views
-2
km<-kmeans(iris,3) 
scorekm<- 
function(km, x,...) 
{ 
    args<-list(x,...) 
    result=NULL 
    for(i in seq(from=1,to=nargs()-1,by=4)) 
     { 
    data<-matrix(c(args[[i]],args[[i+1]],args[[i+2]],args[[i+3]]),nrow=1) 
    k <- nrow(km$centers) 
    d <- as.matrix(dist(rbind(km$centers, data)))[-(1:k),1:k] 
    d <- matrix(d,nrow=1) 
    category<- apply(d,1,which.min) 
    result<-cbind(category,result) 
} 
    return(result) 
} 

Теперь, мой выход, как это:Как отделить мой вывод запятой?

> scorekm(km,5.9,3.0,5.1,1.8,5.1,3.8,1.6,0.2) 
category category category 
>[1,]  1  2 

Как я могу изменить его быть похожим на это: >[1,] 1,2

Выход через запятую.

+3

Зачем вам это нужно? – Roland

+0

Мой босс требует. –

+0

Прошу прощения, это не имеет смысла. Разумеется, для этого можно использовать 'paste', но ваш босс, вероятно, хочет каким-то образом использовать выход. Чтобы данные, подобные этому, имели смысл только для вывода, поскольку он довольно неприменим в R. И это, вероятно, означает, что вы ищете 'write.csv' или что-то в этом роде. – Roland

ответ

0

как Роланд спросил, почему это важно, поскольку мы не знаем, как вы хотите использовать свой выход. Но это должно возвращать «результат» как символьная строка с запятой. Просто измените строку результат < -cbind (категория, результат) с этим результат < -paste (category, ",", result, sep = ""). Надеюсь это поможет.

Greetins, Ben

+0

Это не то, что удовлетворяет. Потому что в конце вывода будет запятая. –

+0

Могу ли я восстановить все выходные данные в символе, а затем разбить их запятой? –

+0

с этим маленьким шрифтом выглядит так: > a <-1 > b <-2 > c (paste (a, ",", b, sep = "")) > [1] "1 , 2 " где у вас есть запятая? –

Смежные вопросы