【发布时间】:2020-08-18 01:25:58
【问题描述】:
这是我在这个神奇网站上的第一个问题。请原谅我的无知。
我正在尝试在 R 中整理数据框以进行数据分析。
我的数据框 df1` 看起来像-
| id | features
| 1 | Window, Door, House, Curtains |
| 2 | Window, AirConditioner, GasStove |
| 3 | GasStove, Parking, Curtains |
| 4 | Curtains, Cable, Window |
我已经通过拆分文本成功地创建了另一个数据框-
s <- strsplit(df1$features, split = ",")
df2 <- data.frame(id = rep(df1$id, sapply(s, length)), features = unique(unlist(s)))
现在,df2 看起来像 -
id| features
|1| Window
|1| Door
|1| House
|1| Curtains
|2| Window
|2| AirConditioner
|2| GasStove
|3| GasStove
|3| Parking
|3| Curtains
|4| Curtains
|4| Cable
|4| Window
我还在 df1 数据框中创建了所有这些 UNIQUE 列,例如 - Window、Door、House 等。
我希望我的最终数据框 df3 如下所示 -
|ID|Window| Door |House |Curtain |AirConditioner| GasStove| Parking |Cable|
|1| 1 |1 |1 |1 |0 |0 |0 |0
|2| 1 |0 |0 |0 |1 |1 |0 |0
|3| 0 |0 |0 |1 |0 |1 |1 |0
|4| 1 |0 |0 |1 |0 |0 |0 |1
这些值可能是 True (1) 或 False (0)。
简而言之,我需要的是,df2 的特征列包含 df3 的列的“名称”,这些列需要填充 True/False(或 1/0)。
尽管尝试了很多次,我还是无法制作这个。
非常感谢您的意见。
我可以在 Python 中使用 chain.from_iterable 以上,但在 R 中实现它时遇到了麻烦。
【问题讨论】:
-
您好 Vinay,欢迎来到 SO!如果您使用
dput(df1)添加数据,其他人会更容易提供帮助。 -
感谢您的建议!下次我会做的。