说我有矢量:
x <- c(11,6,5,3,2,1,25,10,16,12,22,24,19,14,18,32,17,15,8,7,
       33,4,27,9,29,13,30,23,20,31,26,21,28)
x
[1] 11  6  5  3  2  1 25 10 16 12 22 24 19 14 18 32 17 15  8  7 33  4 27  9 29 13 30 23 20
[30] 31 26 21 28
我想确定哪些元素不是提升的.因此,例如,元素2到5(值6,5,3,2,1)是乱序的,因为它们小于元素1(11).然后元素6是有序的,因为它大于11,然后直到元素16(32)的所有元素都是乱序的.我想删除这些元素.
矢量化/快捷方式这样做?
x <- iris[,1:4]
names(x) <- c("x1","x2","x3","x4")
aggregate(x1+x2+x3+x4~x1,FUN=sum,data=x)
这是输出,我想知道
1. ~公式中的含义是什么?
2.为什么x1 = 4.3  ,x1 + x2 + x3 + x4   是8.5?  
x1 x1 + x2 + x3 + x4 
1 4.3 8.5 
2 4.4 26.9 
3 4.5 8.4  
当我使用
 transform(x,x1=sort(x1))
我得到的是:
     x1  x2  x3  x4  
1   4.3 3.5 1.4 0.2  
2   4.4 3.0 1.4 0.2  
3   4.4 3.2 1.3 0.2  
4   4.4 3.1 1.5 0.2  
?许多输出省略)
何时   x1=4.3  ,x1 + x2 + x3 + x4   不是 …
我在计算数字时仍然遇到问题.
试图找到第一行[-0.5,0.5]内的数字量,以及第二行中相同范围外的数字量.
我用abc = rnorm(100, mean=0, sd=1).所以我总共有100个数字,但我只有35个数字在范围内,35个超出范围,这个数字不等于100.
length(abc[abc>=-0.5 & abc<=0.5])
[1] 35
length(abc[abc<-0.5 & abc>0.5])
[1] 35
然后我尝试了:
length(which(abc>=-0.5 & abc<=0.5))
[1] 40
length(which(abc<-0.5 & abc>0.5))
[1] 26
它仍然没有加起来100.这有什么不对?
我有以下数据集:
Date<-c("9/7/2010","9/7/2010","9/7/2010",
        "9/7/2010","9/7/2010","9/7/2010","9/8/2010")
EstimatedQuantity<-c(3535,2772,3279,3411,3484,3274,3305)
ScowNo<-c("4001","3002","4002","BR 8","4002","BR 8","4001")
dataset<- data.frame(EstimatedQuantity,Date,ScowNo)
我正在尝试将数据集转换为列联表,然后再转换回常规数据框:
xtabdata<-as.data.frame.matrix(xtabs(EstimatedQuantity~Date+ScowNo,
                                     data=dataset),
                               row.names=(dataset$Date),optional=F)
我需要一个将输入作为字符串(BLANK)并打印出以下内容的函数:
"Hello BLANK World"
即,世界("七")打印出来 "Hello seven World"
我对如何使用R中的字符串感到困惑.
我有一个正常工作的GLM Logit回归,但是当我向GLM命令添加一个子集参数时,我收到以下错误:
invalid type (list) for variable '(weights)'.
因此,以下命令有效:
glm(formula = A ~ B + C,family = "binomial",data = Data)
但是以下命令会产生错误:
glm(formula = A ~ B + C,family = "binomial",data = Data,subset(Data,D<10))
(我意识到在没有看到我的数据的情况下可能很难回答这个问题,但是对于可能导致我的问题的任何一般性帮助将不胜感激)
我在R中非常环保,所以可能有一个非常简单的解决方案:
我想计算方阵中列向量之间的平均相关性:
x<-matrix(rnorm(10000),ncol=100)
aux<-matrix(seq(1,10000))
loop<-sapply(aux,function(i,j) cov(x[,i],x[,j])
cor_x<-mean(loop)
在评估sapply行时,我得到错误'下标超出界限'.我知道我可以通过脚本执行此操作但是有没有办法在一行代码中实现这一点?
mydata$gender <- c("M", "F", "M")
mydata$country <- c("USA", "USA", "USA")
结合性别和国家创建一个新变量。变量将显示“ M USA”。
所以我不知道如何结合这两个分类数据来产生我想要的。
我认为重新编码会花费很长时间。
有没有一种方法可以不使用交互功能?
提前致谢。
我想用来sapply创建一个2列矩阵,8行.第一列是1到8,第二列是第一列的平方.我这样sapply(1:8, function(x), c(x,x^2))做了我有8列和2行而不是获得2列和8行.如何按行替换列?
我想采用数据框并折叠列上的行,然后创建另一个列,它是所有值的向量.
例如,我想像这样转换数据框:
id  item
1   100
1   103
1   109
1   101
2   102
2   109
2   107
2   105
3   105
3   106
3   101
3   102
3   110
至:
id  item
1   (100,103,109,101)
2   (102,109,107,105)
3   (105,106,101,102,110)
因此,第一列是唯一ID,第二列是该ID所见的所有项目的向量/列表.看起来这应该很容易但我找不到解决方案.如示例中所述,项目数量可以根据id而变化.
这是创建我试图转换的初始数据框的代码.
id <- c(1,1,1,1,2,2,2,2,3,3,3,3,3)
item <- c(100,103,109,101,102,109,107,105,105,106,101,102,110)
input_frame <- data.frame(cbind(id,item))