大家好,我是R的新手,可能有点晕头晕脑,但是当单元格中有标识符时,是否有一种方法可以利用单元格中的值来创建新列?我试图使新的列“Landskapstyp”列分离和填充它们与单元格中的各种值,即Skog (S), Våtmark (V),城市miljö (U), Marin Miljö等(都应该有自己的列),同时删除其他文本。这可能吗?谢谢你的建议!

这可能是一个开始。如果你想要更多的指导,就说得更具体一些。

下面的对象将从'package:stats'中屏蔽:#> #> filter, lag #>下面的对象将从'package:base'中屏蔽:# > # >相交,setdiff setequal,工会图书馆(stringr) df1 < - data.frame (Landskapstyp = c(“马林miljo斯库格(S)”,“斯库格(S))) df2 < - df1 | >变异(马林= case_when (stringr: str_detect (Landskapstyp、固定(“马林”))~真的,真~假),斯库格= case_when (stringr: str_detect (Landskapstyp、固定(“斯库格”(S))) ~真的,真~假))打印(df2) # > Landskapstyp马林斯库格# > 1马林miljo,斯库格(S)真正的真正的# > 2斯库格(S)假真上创建2022-11-01 reprex v2.0.2

如果你提供你的部分数据帧使用dput(头(YOURDF 20))并且你详细地指定一个你想要达到的目标的例子,我们可以尝试得到结果

非常感谢你到目前为止的帮助!为了澄清一点,我试图根据单元格值将“Landskapstyp”列分离出几个变体,这样更容易总结-我只是假设将它们分离到列将有助于排序,计数绘图等,但可能有更好的方法。单元格值可以包含以下9个值。

Jordbrukslandskap (J)
斯库格(S)
城市miljö (U)
Fjall (F)
Vatmark (V)
Sotvatten(左)
Havsstrand (H)
Marin Miljö (M)
Bracksvatten (B)

大多数情况下,记录的单元格值包括其中的一个或两个,但是,也可以包括所有九个值。当将CSV文件导入到R时,该值还会向一些不需要的单元格添加额外的文本,如“- Stor betydelse”和“- Har betydelse”。查询结果的dput(head(DF, 20))部分如下所示

Landskapstyp = c("Marin miljö (M) - Stor betydelse", "Marin miljö (M) - Stor betydelse", "Havsstrand (H) - Stor betydelse", "Skog (S) - Stor betydelse, Våtmark (V) - Stor betydelse", "Skog (S) - Stor betydelse, Våtmark (V) - Stor betydelse", "Skog (S) - Stor betydelse, Våtmark (V) - Stor betydelse, Urban miljö (U) - Har betydelse", "Skog (S) - Stor betydelse, Urban miljö (U) - Stor betydelse"....

在这种情况下,用其他类扩展我的示例。
注意,我现在对待大写和小写是一样的,
当你同时使用miljö和Miljö时

图书馆(dplyr);下面的对象将从'package:stats'中屏蔽:#> #> filter, lag #>下面的对象将从'package:base'中屏蔽:#> #> intersect, setdiff, setequal, union df1 <- data.frame(Landskapstyp = c("Marin miljö (M) - Stor betydelse", "Marin miljö (M) - Stor betydelse", "Havsstrand (H) - Stor betydelse", "Skog (S) - Stor betydelse, Våtmark (V) - Stor betydelse", "Skog (S) - Stor betydelse, Våtmark (V) - Stor betydelse", "Skog (S) - Stor betydelse, Våtmark (V) - Stor betydelse,城市miljö (U) - Har betydelse", "Skog (S) - Stor betydelse,城市miljo (U)——的betydelse”))f_ig < -函数(x) stringr::固定(x, ignore_case = TRUE) df2 < - df1 | >变异(L_J = case_when (stringr: str_detect (Landskapstyp, f_ig(“Jordbrukslandskap (J)”))~真的,真~假),L_S = case_when (stringr: str_detect (Landskapstyp, f_ig(“斯库格”(S))) ~真的,真~假),L_U = case_when (stringr: str_detect (Landskapstyp, f_ig(“城市miljo (U)”))~真的,真~假),L_F = case_when (stringr: str_detect (Landskapstyp, f_ig(“Fjall (F))) ~真的,真~假),L_V = case_when (stringr: str_detect (Landskapstyp, f_ig(“Vatmark (V)”))~真的,真~假),L_L = case_when (stringr: str_detect (Landskapstyp, f_ig(“Sotvatten (L)”))~真的,真~假),L_H = case_when (stringr: str_detect (Landskapstyp, f_ig(“Havsstrand (H)”))~真的,真~假),L_M = case_when (stringr: str_detect (Landskapstyp, f_ig(“马林Miljo”(M))) ~真的,真~假),L_B = case_when (stringr: str_detect (Landskapstyp、固定(“Bracksvatten (B)”))~真的,TRUE ~ FALSE))头(df2) #> Landskapstyp L_J L_S L_U #> Marin miljö (M) -存储betydelse FALSE FALSE FALSE #> 2 Marin miljö (M) -存储betydelse FALSE FALSE FALSE #> 3 Marin miljö (M) -存储betydelse FALSE FALSE FALSE #> 5 Skog (S) -存储betydelse, Våtmark (V) - Har betydelse FALSE TRUE FALSE #> 6 Skog (S) -存储betydelse,Våtmark (V) - Stor betydelse FALSE TRUE FALSE #> L_F L_V L_L L_H L_M L_B #> 1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE #> 2 FALSE FALSE FALSE FALSE TRUE FALSE #> 4 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE #> 5 FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE #> 6 FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE于2022-11-01与reprex v2.0.2一起创建

本主题在最后一次回复后42天自动关闭。新的回复不再被允许。

如果你有一个与它或其中一个回复相关的查询,开始一个新的主题,并返回一个链接。