I have a data that looks like this.For example:
A;a
B;a
C;b
D;c
A;b
A;d
C;c
....
First pos = key , second pos = value. If key; value , then 1 ,if not then 0;
I would to create binary matrix from data.
a b c d
A 1 1 0 1
B 1 0 0 0
C 0 1 1 0
D 0 0 0 1
I could create matrix, my code:
KeyandValue = read.table('~/RStudioProjects/TestData.txt',sep=';',header = FALSE)
tableForData
tableForData[tableForData > 1]
csvFile
"~/RStudioProjects/TestData.csv",quote = F,sep = ";")
write.csv(csvFile)
Now, i want to re-write to .txt format in this form:
A;a;1
A;b;1
A;c;0
A;d;1
B;a;1
B;b;0
B;c;0
B;d;0
.....
My code:
t3
View(t3)
then i view table in this form
How i can write in this form into .txt file?
解决方案
(edited for better consistency with the OP)
In base R you can do it in just one line using as.data.frame.table:
df
V1 = c("A", "B", "C", "D", "A", "A", "C"),
V2 = c("a", "a", "b", "c", "b", "d", "c"))
tableForData
tableForData[tableForData > 1]
t3
Then t3 is...
> head(t3)
V1 V2 Freq
1 A a 1
2 B a 1
3 C a 0
4 D a 0
5 A b 1
6 B b 0
You can sort it if the order of rows is important:
t3
... and write into a file:
write.table(t3, "afilename.csv", sep=";", col.names=FALSE, quote=FALSE, row.names=FALSE)