Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.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
如何改进代码以将一列factor转换为data.frame中的list?_R - Fatal编程技术网

如何改进代码以将一列factor转换为data.frame中的list?

如何改进代码以将一列factor转换为data.frame中的list?,r,R,我想将一列因子转换为data.frame中的列表。 我用下面的代码完成了,但我觉得这不是正确的方法。 如何改进下面的代码 我处理的数据是关联规则的结果。(使用包:arules)(日语) 以下是“规则”列的3行: 规则 {道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,歩道設置率=100%,バス優先.専用レーンの有無=なし} => {事故類型=車両相互_追突} {道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,バス優先.専用レーンの有無=なし

我想将一列因子转换为data.frame中的列表。
我用下面的代码完成了,但我觉得这不是正确的方法。
如何改进下面的代码

我处理的数据是关联规则的结果。(使用包:arules)(日语)
以下是“规则”列的3行:

规则
{道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,歩道設置率=100%,バス優先.専用レーンの有無=なし} => {事故類型=車両相互_追突}
{道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,バス優先.専用レーンの有無=なし} => {事故類型=車両相互_追突}
{道路構造=交差点_交差点付近,歩道設置率=100%,バス優先.専用レーンの有無=なし,代表沿道状況=人口集中地区(商業地域を除く)} => {事故類型=車両相互_追突}

和str(数据)

“数据帧”:5个变量中的50个变量:
$rules:系数w/50级“{道路構造=交差点_交差点付近,バス優先.専用レーンの有無=なし,指定最高速度=50} => {事故類型=車両相互_追突}",..: 983538103112537…
$support:Factor w/48级别“0.050295052”,…:5145102413013158…
$置信度:系数w/50水平“0.555131629”,..:50 49 48 47 46 45 44 42 41…
$lift:Factor w/50 levels“1.894879112”,…:50 49 48 47 46 45 44 42 41…
$count:系数w/48水平“1013”、“1250”和….:9 18 9 14 28 5 34 17 19 22

#将因子转换为字符
如果(is.factor,as.character)->数据,则数据%>%会发生变化
#删除规则中的RHS(在“=>”之后的部分)

数据$rules我们可以使用
stru-extract

library(stringr)
library(dplyr)
out <- data %>% 
         mutate(rules = trimws(str_extract(rules, "(?<=\\{)[^}]+")))
out$rules
#[1] "道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,歩道設置率=100%,バス優先.専用レーンの有無=なし"          
#[2] "道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,バス優先.専用レーンの有無=なし"                          
#[3] "道路構造=交差点_交差点付近,歩道設置率=100%,バス優先.専用レーンの有無=なし,代表沿道状況=人口集中地区(商業地域を除く)"
数据
data我们可以使用
stru-extract

library(stringr)
library(dplyr)
out <- data %>% 
         mutate(rules = trimws(str_extract(rules, "(?<=\\{)[^}]+")))
out$rules
#[1] "道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,歩道設置率=100%,バス優先.専用レーンの有無=なし"          
#[2] "道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,バス優先.専用レーンの有無=なし"                          
#[3] "道路構造=交差点_交差点付近,歩道設置率=100%,バス優先.専用レーンの有無=なし,代表沿道状況=人口集中地区(商業地域を除く)"
数据
数据非常感谢!!!非常有效!它确实有效。这让我很困惑,我应该如何学习或锻炼,才能像你一样完美地处理数据?对不起,我没有把问题说清楚,我想要的最终结果是这样的:[1]”道路構造=交差点_交差点付近"        "昼間12時間平均旅行速度=20~30km/h“歩道設置率=100%"                   "バス優先.専用レーンの有無=なし“.For each row of column”规则",已转换为列表。@guttentag_liu如果您想作为列表,请使用
out$规则我想可能
r out$规则真的很感谢您。我可以再麻烦您一点吗。我应该做些什么,或者学些什么来让我的代码行像您一样简单高效?非常感谢!!!非常有效!它确实有效。这让我很困惑,我该怎么做呢我学习或锻炼,以便能像你一样完美地处理数据?对不起,我没有把问题说清楚,我想要的最终结果如下:[1]”道路構造=交差点_交差点付近"        "昼間12時間平均旅行速度=20~30km/h“歩道設置率=100%"                   "バス優先.専用レーンの有無=なし"   .  对于“规则”列的每一行,转换为列表。@guttentag_liu如果你想作为列表,那么使用
out$rules我想也许
r out$rules真的很感谢你。我能再麻烦你一点吗。我应该做些什么,或者学些什么来让我的代码行像你一样简单高效?
data <- structure(list(rules = c("{道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,歩道設置率=100%,バス優先.専用レーンの有無=なし} => {事故類型=車両相互_追突}", 
"{道路構造=交差点_交差点付近,昼間12時間平均旅行速度=20~30km/h,バス優先.専用レーンの有無=なし} => {事故類型=車両相互_追突}", 
"{道路構造=交差点_交差点付近,歩道設置率=100%,バス優先.専用レーンの有無=なし,代表沿道状況=人口集中地区(商業地域を除く)} => {事故類型=車両相互_追突}"
)), class = "data.frame", row.names = c(NA, -3L))