Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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
R 如何在汇总数据中排除低于特定温度的特定天数?_R_Subset - Fatal编程技术网

R 如何在汇总数据中排除低于特定温度的特定天数?

R 如何在汇总数据中排除低于特定温度的特定天数?,r,subset,R,Subset,请不要介意这个问题是否很基本。我正在学习R 我有一个2000-2010年夏季月份的汇总数据集。我想从所有数据中排除9摄氏度以下的9天 更新 我的数据集中的温度值为 [1] 9.4 10.2 11.2 12.4 12.6 13.1 13.8 14.3 12.1 10.3 11.0 10.6 9.6 10.5 13.2 14.8 [17] 14.4 15.3 15.9 14.8 14.1 15.0 18.0 19.8 19.9 18.2 16.2 16.2 17.9 19.3 19.4 18.

请不要介意这个问题是否很基本。我正在学习R

我有一个2000-2010年夏季月份的汇总数据集。我想从所有数据中排除9摄氏度以下的9天

更新

我的数据集中的温度值为

 [1]  9.4 10.2 11.2 12.4 12.6 13.1 13.8 14.3 12.1 10.3 11.0 10.6  9.6 10.5 13.2 14.8
[17] 14.4 15.3 15.9 14.8 14.1 15.0 18.0 19.8 19.9 18.2 16.2 16.2 17.9 19.3 19.4 18.7
[33] 18.5 21.1 23.2 22.7 22.4 22.5 22.6 21.3 19.9 19.5 18.4 17.7 18.3 20.2 21.6 22.0
我想删除数据集中每个点9摄氏度之前的所有9个值

有人建议我使用以下脚本:

cleandata<-workdata[-sample(which(workdata$tempd0d1 < 9), 9), ]

任何快速的帮助都将不胜感激

如果您只想删除它们,请使用:

datasetClean 9,]
至关重要的是,您首先将温度列转换为数字数据格式。 就像


dataset$temperature这可能会有所帮助。你可以不用任何额外的软件包就可以做到这一点

您可以从温度<9的子集中抽取9天的样本,然后删除这些行:

set.seed(123)

df[-sample(which(df$temp < 9), 9), ]
数据

df <- structure(list(temp = c(15L, 15L, 3L, 14L, 3L, 10L, 2L, 6L, 11L, 
5L, 4L, 14L, 6L, 9L, 10L, 11L, 5L, 3L, 11L, 9L, 12L, 9L, 9L, 
13L, 3L, 8L, 10L, 7L, 10L, 9L, 14L, 3L, 4L, 14L, 1L, 11L, 7L, 
5L, 12L, 15L, 10L, 13L, 7L, 9L, 9L, 10L, 7L, 11L, 12L, 5L)), class = "data.frame", row.names = c(NA, 
-50L))

df$temp
[1] 15 15  3 14  3 10  2  6 11  5  4 14  6  9 10 11  5  3 11  9 12  9  9 13  3  8 10  7 10  9 14
[32] 3  4 14  1 11  7  5 12 15 10 13  7  9  9 10  7 11 12  5

df欢迎来到StackOverflow!请阅读相关信息以及如何给出建议。这将使其他人更容易帮助你。我认为这里的答案可能是使用
groupby
&
mutate
找到每天的最大/平均值,然后
过滤
。但是没有数据很难说。我只想排除温度低于9的10天,而不是温度低于9的所有日子。我如何计算只删除温度低于9的10天?谢谢。这对我的情况没有帮助。我尝试了df[-sample(其中(df$temp<9),9),],但它将整个数据集作为输出。它没有显示温度低于9的行。请你详细说明可能存在的问题。请澄清你到底想要什么。您想要两个数据帧吗?一个排除了9个temp,另一个排除了9个temp的数据帧?您是否希望使用单个数据框,但其中有一列指示哪些行将被排除?是否只需要排除行的数据帧?需要更多的澄清。本,我想从我的原始数据集中删除9天前到9摄氏度的数据。df[-sample(哪个(df$temp<9),9),]会做这项工作吗?你能告诉我在哪里我能读到更多关于这种子集的信息吗?@HasanSohail我非常非常困惑。我强烈建议你读一下。我不明白你原来的数据集是什么样子的。我也不明白“删除9摄氏度之前的9天”是什么意思。我不知道你想要的最终结果应该是什么样子。如果您能够提供有关stackoverflow的更详细问题,您将获得更多帮助。你可以编辑你的问题上面有更多的信息。有很多关于R的子集。我最喜欢的资源之一是。
 [1] 15 15 14 10  2  6 11 14  9 10 11  3 11  9 12  9  9 13  3  8 10 10  9 14  4 14  1 11  7  5 12
[32] 15 10 13  9  9 10  7 11 12  5
df <- structure(list(temp = c(15L, 15L, 3L, 14L, 3L, 10L, 2L, 6L, 11L, 
5L, 4L, 14L, 6L, 9L, 10L, 11L, 5L, 3L, 11L, 9L, 12L, 9L, 9L, 
13L, 3L, 8L, 10L, 7L, 10L, 9L, 14L, 3L, 4L, 14L, 1L, 11L, 7L, 
5L, 12L, 15L, 10L, 13L, 7L, 9L, 9L, 10L, 7L, 11L, 12L, 5L)), class = "data.frame", row.names = c(NA, 
-50L))

df$temp
[1] 15 15  3 14  3 10  2  6 11  5  4 14  6  9 10 11  5  3 11  9 12  9  9 13  3  8 10  7 10  9 14
[32] 3  4 14  1 11  7  5 12 15 10 13  7  9  9 10  7 11 12  5