list2env(split(df, df[,1]), envir = .GlobalEnv)
我发现此代码已经发布,但问题是我的关卡是数字还是单词之间有空格,我认为R不喜欢。因此,数据框显示在我的全球环境中,但我无法使用它们。当我在其上调用函数时,它们无法处理,并且它们不会显示在标签中。
我是R的新手,所以我不确定如何复制我的数据设置得非常好。它针对碰撞事故的24个变量进行了14,000次观测。
Neighborhood <- c("Westboro", "Hintonburg", "Downtown", "Downtown")
AccidentType <- c("Fatal injury", "property damage", "property damage", "injury")
Neighborhood <- as.factor(Neighborhood)
AccidentType <- as.factor(AccidentType)
df <- data.frame(Neighborhood, AccidentType)
假装我只对财产损失感兴趣并想要一个全新的数据框架,只显示财产损失事故。而且我也希望将旧数据保留在其原始数据框中。
感谢。对不起,我在R很可怕。
编辑:评论中的所有方法都与样本数据集一起使用,但出于某种原因不是我的实际数据集:(
当我尝试这些方法时,我得到了这个:
OttawaCollisions %>% filter(Collision_Classification=="Injury")
[1] Record Location X Y
[5] Date Time Environment Road_Surface
[9] Traffic_Control Collision_Location Light Collision_Classification
[13] Impact_type Seasons Holidays LunarPhase
[17] DayofWeek Accidents Longitude Latitude
[21] Ward WardNumb NumText TimeCat
<0 rows> (or 0-length row.names)
> View(OttawaCollisions)
> subset(OttawaCollisions, Collision_Classification == "P.D. only")
[1] Record Location X Y
[5] Date Time Environment Road_Surface
[9] Traffic_Control Collision_Location Light Collision_Classification
[13] Impact_type Seasons Holidays LunarPhase
[17] DayofWeek Accidents Longitude Latitude
[21] Ward WardNumb NumText TimeCat
<0 rows> (or 0-length row.names)
我不确定为什么会显示零行。这没有道理。我有很多数据(14,000点),它们都转换为因子。它们就是我在它们上面调用str()的时候。啊。
答案 0 :(得分:1)
要明确注释中的内容,您只需过滤data.frame:
在基地R:
subset(df,AccidentType == "property damage")
使用dplyr:
filter(df,AccidentType == "property damage")
如果过滤成本很高,并且您只想制作一次(但如果您只有14k行则不然),您可以在列表中拆分df:
df_list <- split(df,df$AccidentType)
然后拨打df_list[["property damage"]]
因此,您不需要为每个data.frame
使用单独的对象,也不建议这样做。