小编Aar*_*ica的帖子

使两个随机团队形成数据集,并在R中获得整体团队得分

假设我有一个由10名球员(球员)组成的足球队,我应该从中制作两个子团队,每队5人,然后计算每个团队的总分.

players <- read.table(text=
"paul    3
ringo   3
george  5
john    5
mick    1
ron     2
charlie 3
ozzy    5
keith   3
brian   3", as.is=TRUE)
Run Code Online (Sandbox Code Playgroud)

我已经提取了一组随机的5名玩家:

t1 <- sample(players$V1, size = 5)
Run Code Online (Sandbox Code Playgroud)

但是要创建第二支球队(不包括第一支球员)并计算两支球队的总得分,我已完成封锁.

random r subset dataset

4
推荐指数
1
解决办法
140
查看次数

R:保留1行/列矩阵

给定一行,一列或一个单元格的矩阵,我需要在保持矩阵结构的同时重新排序行.我尝试添加,drop=F但它不起作用!我做了什么?

test = matrix(letters[1:5]) # is a matrix
test[5:1,,drop=F]           # not a matrix

test2 = matrix(letters[1:5],nrow=1) # is a matrix
test2[1:1,,drop=F]                  # not a matrix

test3 = matrix(1)  # is a matrix
test3[1:1,,drop=F] # not a matrix
Run Code Online (Sandbox Code Playgroud)

r matrix subset

4
推荐指数
1
解决办法
76
查看次数

3
推荐指数
1
解决办法
3220
查看次数

如何使用函数和*apply查看文件中的结果?

我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,当控制台继续滚动时,它们不会丢失).一种方法是使用sink()file.show().例如:

y <- rnorm(100); x <- rnorm(100); mod <- lm(y~x)
sink("tempSink", type="output")
summary(mod)
sink()
file.show("tempSink", delete.file=T, title="Model summary")
Run Code Online (Sandbox Code Playgroud)

我经常这样做是为了检验模型拟合,如上述,也为各种各样的其他功能和对象,如:summary(data.frame),anova(model1, model2),table(factor1, factor2).这些很常见,但也可能出现其他情况.这里的要点是函数和对象的性质都可以变化.

每次输入以上所有内容有点乏味.我想写一个我可以调用的更简单的函数,类似下面的东西会很好:

sinkShow <- function(obj, fun, title="output") {
    sink("tempSink", type="output")
    apply(obj, ?, fun)
    sink()
    file.show("tempSink", delete.file=T, title=title)
}
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用.有几个问题.首先,你将如何做到这一点,以便它不会与错误类型的对象或函数崩溃,而不必有一个条件执行列表(即,if(is.list(obj) { lapply...).其次,我不确定如何处理这个margin论点.最后,即使我尝试简单,人为的例子,我知道一切都设置得恰到好处,所以这似乎有些根本错误.

有谁知道如何简单轻松地处理这种情况?我不是R的新手,但我从来没有正式教过它; 我以特别的方式选择了技巧,即我不是一个非常复杂的R程序员.谢谢.

r apply

2
推荐指数
1
解决办法
708
查看次数

标签 统计

r ×4

subset ×2

apply ×1

dataset ×1

matrix ×1

random ×1