2016-07-28 64 views
-1

的号码,但我需要做的这R. 我有这样一个数据帧:R:算我比较熟悉Python出现

 id            apps 
    8400        10,19,9,9,8,9,1,3,3,6 
    10915       10,2,6,2,3,2,2,3,2,3,2,6 
    72331     10,9,6,1,2,4,6,2,14,3,3,2,3,9,2 

我要计数的出现次数每个应用程序,然后返回一个新列最出现的应用程序:

 id            apps  Most 
    8400        10,19,9,9,8,9,1,3,3,6  9 
    10915       10,2,6,2,3,2,2,3,2,3,2,6  2 
    72331     10,9,6,1,2,4,6,2,14,3,3,2,3,9,2  2 

最好成绩。

我加了这个案例的答案,也许它也可以帮助其他人:)。

+3

'dput'数据请。另外,请详细说明如何在Python中执行此操作 - 我们希望您在尝试自己解决问题时显示一些努力 – MichaelChirico

+6

“这样的数据框”不明确,这要感谢R如何以类似方式打印几个事物。无论如何,我认为你想要的模式:http://stackoverflow.com/q/2547402/ – Frank

+0

'sapply(c(“10,19,9,9,8,9,1,3,3,6”,“ 10,2,6,2,3,2,2,3,2,3,2,6 “),函数(X){吨<-table(strsplit(X,”,“)); as.numeric(如果你的应用程序列是一个字符串,如果它是一个列表,只是删除'strsplit'部分,names(which.max(t)))})'可以工作。 – FisherDisinformation

回答

0

让我回答我的问题,也许它可以帮助别人太:

MyMode <- function(x) { 
x <- strsplit(x,",") 
names(sort(-table(x)))[1] 
} 

然后应用它:

df$most <- lapply(as.character(test$apps),MyMode)