Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在data.frame中拆分连续数据_R_Split - Fatal编程技术网

在data.frame中拆分连续数据

在data.frame中拆分连续数据,r,split,R,Split,我的数据结构是 id value1 value2 1 0.12 1 2 0.09 0 3 0.05 0 4 0.65 1 5 0.68 0 ... 我需要使用value1分割数据,这样0

我的数据结构是

id value1 value2
1  0.12   1
2  0.09   0
3  0.05   0
4  0.65   1
5  0.68   0
...

我需要使用
value1
分割数据,这样0cut功能。首先创建一些示例数据:

dd = data.frame(id = 1:20, value1=runif(20))
接下来,定义断点并将
value1

cuts = cut(dd$value1, breaks=seq(0, 1, 0.2))
然后将切割转换为数字(使用一些神奇的因子),以获得您想要的:

as.numeric(cuts)
所以


您只需使用
cut
功能即可。首先创建一些示例数据:

dd = data.frame(id = 1:20, value1=runif(20))
接下来,定义断点并将
value1

cuts = cut(dd$value1, breaks=seq(0, 1, 0.2))
然后将切割转换为数字(使用一些神奇的因子),以获得您想要的:

as.numeric(cuts)
所以


您可以简单地执行以下操作

DF <- read.table(text='id value1 value2
1  0.12   1
2  0.09   0
3  0.05   0
4  0.65   1
5  0.68   0', header=TRUE)

DF$group <- (DF$value1)%/%0.201 + 1

DF
##   id value1 value2 group
## 1  1   0.12      1     1
## 2  2   0.09      0     1
## 3  3   0.05      0     1
## 4  4   0.65      1     4
## 5  5   0.68      0     4

# to get % of '1' in each group
result <- aggregate(value2 ~ group, DF, function(x) sum(x)/length(x))
result
##   group    value2
## 1     1 0.3333333
## 2     4 0.5000000

DF您可以简单地执行以下操作

DF <- read.table(text='id value1 value2
1  0.12   1
2  0.09   0
3  0.05   0
4  0.65   1
5  0.68   0', header=TRUE)

DF$group <- (DF$value1)%/%0.201 + 1

DF
##   id value1 value2 group
## 1  1   0.12      1     1
## 2  2   0.09      0     1
## 3  3   0.05      0     1
## 4  4   0.65      1     4
## 5  5   0.68      0     4

# to get % of '1' in each group
result <- aggregate(value2 ~ group, DF, function(x) sum(x)/length(x))
result
##   group    value2
## 1     1 0.3333333
## 2     4 0.5000000

DF你的问题中有很多拼写错误。你应该做拼写检查作为基本的网络礼仪。此外,陈述你迄今为止所做的一切总是好的。Stackoverflow不是为您编写代码的地方..好的。我得到了它。下次我会考虑你的建议。谢谢你的问题有很多拼写错误。你应该做拼写检查作为基本的网络礼仪。此外,陈述你迄今为止所做的一切总是好的。Stackoverflow不是为您编写代码的地方..好的。我得到了它。下次我会考虑你的建议。谢谢谢谢你的建议!这是一个非常简单的方法!谢谢你的建议!这是一个非常简单的方法!