当前位置: 首页 > 知识库问答 >
问题:

错误与R函数"应用","do.call"和"laply"的th包"plyr"

姜博
2023-03-14

我想把我的函数"F. w"应用到"t"的相应元素上。我试图使用sApplication,tApplication,do.call,laply...每次我都会出错!我做错了什么?

R代码:

Data=data.frame(X1=c("A","B","B","B","B","B","B","B","B","B","B","B","A","B",
               "C","B","B","A","A","A","B","B","C","C","A","B","A","B"),
             X2=rep(0,28))
w=list(rep(0.2,7),rep(0.5,18),rep(0.8,3))
F.w <- function(j){
  i <- which(Data$X1== unique(Data$X1)[j])
  Data$X2[i] <- as.numeric(unlist(w[j]))
  return(Data)
}
t= c(1,2,3)

library(plyr)
laply(t,F.w)

do.call(F.w,list(t),quote = TRUE)

tapply(t,t,F.w)

用do。我收到了这个错误:

警告消息:1:在is.na(e1)|is.na(e2):较长的对象长度不是较短的对象长度的倍数2:在==.默认(Data$X1,唯一(Data$X1)[j]):较长的对象长度不是较短对象长度3的倍数:在Data$X2[i]中

预期结果

>Data
   X1  X2
1   A 0.2
2   B 0.5
3   B 0.5
4   B 0.5
5   B 0.5
6   B 0.5
7   B 0.5
8   B 0.5
9   B 0.5
10  B 0.5
11  B 0.5
12  B 0.5
13  A 0.2
14  B 0.5
15  C 0.8
16  B 0.5
17  B 0.5
18  A 0.2
19  A 0.2
20  A 0.2
21  B 0.5
22  B 0.5
23  C 0.8
24  C 0.8
25  A 0.2
26  B 0.5
27  A 0.2
28  B 0.5

共有1个答案

壤驷棋
2023-03-14

F. w函数可以更改为

F.w <- function(dat, w1){
  i <- match(dat[["X1"]], unique(dat[["X1"]]))
  unlist(w1)[ rank(i, ties.method = "first")]
}

Data$X2 <-  F.w(Data, w)
Data$X2
#[1] 0.2 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.2 0.5 0.8 0.5 0.5
#[18] 0.2 0.2 0.2 0.5 0.5 0.8 0.8 0.2 0.5 0.2 0.5
 类似资料:
  • 输出 错误。jcall(drv@jdrv,“Ljava/sql/Connection;”,“连接”,如图所示。字符(url)[1],:java。lang.NoClassDefFoundError:org/apache/thrift/transport/ttTransportException

  • 我试图用SpringBoot中的一些数据填充一个thymeleaf模板。我想做的是 我已经尝试了这里提出的两种解决方案:如果属性和特性存在,则显示文本;按照Thymeleaf的呈现顺序,因为< code>group.organization为空,所以不应该显示整个内部< code>td。 还有一个问题,因为蒂梅莱夫抱怨说 我不明白为什么会发生这种情况,因为组对象存在,只是组织为空

  • 我在使用groupby和函数删除异常值时遇到一个TypeError: 我已经用:过滤了列中的NaN行,我应该怎么做才能使它正确返回?提前谢谢你的帮助。 这就是我通过,似乎很正常。 相关参考资料: 一元的操作数类型错误 一元的操作数类型错误

  • 问题内容: 尽管这里有一个相同的问题,但是我找不到我的问题的答案,所以这里是我的问题: 我正在使用mocha和chai测试我的node js应用程序。我正在用sinion封装功能。 当我尝试运行此测试时,它给了我错误 我也尝试过 在每个描述中,但仍然给我相同的错误。 问题答案: 您应该恢复in 功能,请按以下方法尝试。

  • 我需要在R中执行以下操作:我有一个数字(N),例如

  • $R()是 new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。 跳到ObjectRange 类文档可以看到一个关于此类的完整描述. 此时,我们还是先来看一个例子以展示这个缩写能代替哪些方法吧。其它相关的一些知识可 以在Enumerable 对象文档中找到。 <script> function demoDollar_R(){ var