R 将唯一值转换为新列,并检查所有其他值
感谢@hrbrmstr,我为“”问题找到了一个很好的解决方案 但由于这一认识,出现了另一个问题: 现在我得到了以下数据结构R 将唯一值转换为新列,并检查所有其他值,r,dataframe,reshape,dcast,R,Dataframe,Reshape,Dcast,感谢@hrbrmstr,我为“”问题找到了一个很好的解决方案 但由于这一认识,出现了另一个问题: 现在我得到了以下数据结构 $Vorname : chr "Jan" "Jan" "Jan" "Jan" ... $ Nachname : chr "Aken" "Aken" "Aken" "Aken" ... $ ID : chr "1627" "1627" "1627" "1627" ... $ Fraktion : chr "Die Linke" "Die
$Vorname : chr "Jan" "Jan" "Jan" "Jan" ...
$ Nachname : chr "Aken" "Aken" "Aken" "Aken" ...
$ ID : chr "1627" "1627" "1627" "1627" ...
$ Fraktion : chr "Die Linke" "Die Linke" "Die Linke" "Die Linke" ...
$ Reli : chr "" "" "" "" ...
$ Geschlecht: chr "Männlich" "Männlich" "Männlich" "Männlich" ...
$ Auss_ord : chr "Auswärtiger Ausschuss" "Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes" "Verteidigungsausschuss" "Unterausschuss Abrüstung, Rüstungskontrolle und Nichtverbreitung" ...
唯一一个实际变化的变量是“Auss_ord”,它包含不同的MPs佣金值
现在,我想要实现的是从当前的长版本切换到数据帧的宽版本
对于“Auss_ord”中的每个唯一值(特定文本字符串),应该有一个新列,并且还应检查另一个对象是否具有相同的值是否为“True”
所以
Vorname Nachname ID Fraktion Reli Geschlecht Auss_ord
<chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 Jan Aken 1627 Die Linke Männlich Auswärtiger Ausschuss
2 Jan Aken 1627 Die Linke Männlich Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes
3 Jan Aken 1627 Die Linke Männlich Verteidigungsausschuss
4 Jan Aken 1627 Die Linke Männlich Unterausschuss Abrüstung, Rüstungskontrolle und Nichtverbreitung
5 Stephan Albani 1769 CDU/CSU Männlich Ausschuss für Bildung, Forschung und Technikfolgenabschätzung
6 Stephan Albani 1769 CDU/CSU Männlich Ausschuss für Gesundheit
7 Katrin Albsteiger 1770 CDU/CSU römisch-katholisch Weiblich Schriftführer/in
8 Katrin Albsteiger 1770 CDU/CSU römisch-katholisch Weiblich Ausschuss für die Angelegenheiten der Europäischen Union
Vorname-Nachname-ID-Fraktion-Reli-Geschlecht-Auss\u-ord
1627年1月1日星期二
1627年1月2日第23c节第8节《移民法》
1627年1月3日星期五
1627年1月4日,阿肯·艾肯(Jan Aken 1627)与马恩利希(Männlich Unterausschuss Abrüstung,Rüstungskontrolle and Nichtverbreitung)联姻
5 Stephan Albani 1769 CDU/CSU Männlich Ausschuss für Tuldung,Forschung and Technikf olgenabschätzung
6斯蒂芬·阿尔巴尼1769基督教民主联盟/基督教团结会青年党für Gesundheit
7 Katrin Albsteiger 1770 CDU/CSU römisch katholisch Weiblich Schriftführer/in
8 Katrin Albsteiger 1770 CDU/CSU römisch katholisch Weiblich Ausschuss für de Angelegenheiten der Europeäischen Union
…应该变成
我试着像这样重塑手术
d1 <- dcast(df, Vorname ~ Nachname ~ ID ~ Fraktion ~ Reli, value.var="ausord")
d1你可以做:
dcast(df,Vorname+Nachname+ID+Fraktion+Reli+Geschlecht~Auss_ord,length)
length
将允许使用“Auss\u ord”生成的列的结果数据帧填充0/1您可以执行以下操作:
dcast(df,Vorname+Nachname+ID+Fraktion+Reli+Geschlecht~Auss_ord,length)
length
将允许使用“Auss\u ord”生成的列的0/1填充生成的数据帧重新创建数据
请注意,您的列名现在将很难操作。在传播之前,最好用一些简短的首字母缩略词来重命名Auss\u ord
。重新创建数据
请注意,您的列名现在将很难操作。在传播之前,最好使用一些简短的首字母缩写来重命名Auss\u ord
。这里是,数据帧比str
的输出更好。这里是,数据帧比str
的输出更好。
politik <- read.table(text="Vorname Nachname ID Fraktion Reli Geschlecht Auss_ord
Jan Aken 1627 'Die Linke' NA Männlich 'Auswärtiger Ausschuss'
Jan Aken 1627 'Die Linke' NA Männlich 'Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes'
Stephan Albani 1769 'CDU/CSU' NA Männlich 'Ausschuss für Bildung, Forschung und Technikfolgenabschätzung'",
header = TRUE)
library(dplyr)
library(tidyr)
politik %>%
mutate(present = TRUE) %>%
spread(Auss_ord, present)
Vorname Nachname ID Fraktion Reli Geschlecht
1 Jan Aken 1627 Die Linke NA Männlich
2 Stephan Albani 1769 CDU/CSU NA Männlich
Ausschuss für Bildung, Forschung und Technikfolgenabschätzung
1 NA
2 TRUE
Auswärtiger Ausschuss
1 TRUE
2 NA
Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes
1 TRUE
2 NA