R 将整数和非整数拆分,得到平均值或中值

R 将整数和非整数拆分,得到平均值或中值,r,R,我通过rnorm(n)得到了n个随机变量,也通过: sample (1:100, n, replace = T) 我把这两个数据连接起来,这样就有2n个随机变量(=x) 问题是make函数(函数名为mysplit),它将数据分为整数和非整数,并获得每个平均值或中值(可选) 我想我应该使用函数split或tapply,但我不知道如何将数据拆分为整数和非整数 还有,如果有可选部分,我如何设置可选功能(中值) mysplit(x,n,method = "median") 我们可以使用split

我通过rnorm(n)得到了n个随机变量,也通过:

sample (1:100, n, replace = T)
我把这两个数据连接起来,这样就有2n个随机变量(=x)

问题是make函数(函数名为mysplit),它将数据分为整数和非整数,并获得每个平均值或中值(可选)

我想我应该使用函数split或tapply,但我不知道如何将数据拆分为整数和非整数

还有,如果有可选部分,我如何设置可选功能(中值)

mysplit(x,n,method = "median")

我们可以使用
split

 lapply(split(v1, grepl("\\.", v1)), mean)
如果我们需要一个函数

mysplit <- function(x, n, method = "median"){
   lst <- split(x, grepl("\\.", x))
   lapply(lst, method)
 }

 mysplit(v1, 2, "median")

mysplit我们可以使用
split

 lapply(split(v1, grepl("\\.", v1)), mean)
如果我们需要一个函数

mysplit <- function(x, n, method = "median"){
   lst <- split(x, grepl("\\.", x))
   lapply(lst, method)
 }

 mysplit(v1, 2, "median")

mysplit我假设您的分层数据看起来像数据d:

 d<-data.table(y=as.vector(rbind(rnorm(100),seq(1.0:100.0))))

d我假设您的分层数据看起来像数据d:

 d<-data.table(y=as.vector(rbind(rnorm(100),seq(1.0:100.0))))

连接后,整个向量变为
数值
类您可能指的是整数和小数部分?而不是小数部分。不管这个数字是整数还是非整数,只要你把它们连在一起,整个向量就会变成
numeric
classe也许你指的是整数和分数部分,而不是分数部分。不管这个数字是整数还是非整数,然后将其拆分谢谢,但是我如何才能生成‘mysplit(x,n)’的形式呢@서명교 你能在帖子中更新一下
x
是什么吗?我很难理解输入是什么。你可以在第四行看到(=x),这意味着两个随机变量(2n)的串联@서명교 那么,是连接到函数中的向量吗?。如果是这种情况,则不需要将
n
作为输入yes,函数将该向量分为整数部分和非整数部分,并获取均值或中值(可选)谢谢,但我如何才能生成“mysplit(x,n)”的形式@서명교 你能在帖子中更新一下
x
是什么吗?我很难理解输入是什么。你可以在第四行看到(=x),这意味着两个随机变量(2n)的串联@서명교 那么,是连接到函数中的向量吗?。如果是这种情况,则不需要将
n
作为输入yes,函数将该向量分为整数部分和非整数部分,并在涉及浮点时获得均值或中值(可选)。使用
all.equal()更安全
比与
==
的相等比较更安全。当涉及浮点时,使用
all.equal()
比与
=
的相等比较更安全。