如何制作一个数字乘以R中上升到3的数字的频率表

如何制作一个数字乘以R中上升到3的数字的频率表,r,frequency,R,Frequency,有了下面的列表,我希望频率的结果乘以它的索引值,提高到3。我怎么做呢 data<-c(1,1,2,2,3,34,65,78,65,3) table(data) data 1 2 3 34 65 78 2 2 2 1 2 1 谢谢 或 你可以考虑 TpEp< /C> >: res <- tapply(data, data, function(x) (x[1]^3) * length(x)) #1 2 3 34 65

有了下面的列表,我希望频率的结果乘以它的索引值,提高到3。我怎么做呢

data<-c(1,1,2,2,3,34,65,78,65,3)

table(data)

data

 1  2  3 34 65 78 

 2  2  2 1  2  1 
谢谢


你可以考虑<代码> TpEp< /C> >:

res <- tapply(data, data, function(x) (x[1]^3) * length(x))

#1      2      3     34     65     78 
#2     16     54  39304 549250 474552 

res注意,与其他答案一样漂亮,但这是一个多步骤的解决方案

数据:

with(rle(sort(data)), lengths*values^3)
#[1]      2     16     54  39304 549250 474552
x = table(data)
x*as.numeric(names(x))^3
#data
#1      2      3     34     65     78 
#2     16     54  39304 549250 474552 
res <- tapply(data, data, function(x) (x[1]^3) * length(x))

#1      2      3     34     65     78 
#2     16     54  39304 549250 474552 
data<-c(1,1,2,2,3,34,65,78,65,3)
data <- as.data.frame(table(data))
data$data <- as.numeric(as.character(data$data))
data$powers <- data$data**3
data$final <- data$Freq * data$powers
  data Freq powers  final
1    1    2      1      2
2    2    2      8     16
3    3    2     27     54
4   34    1  39304  39304
5   65    2 274625 549250
6   78    1 474552 474552