Thx Jim. The Code works perfect when I run it in a plain way.
It gives a dataframe with 160 columns (like it should)
But when I run the code in a function it gives a dataframe with 161 columns
and the order of the columns has changed into an alfabethical order. Do you
know why this occurs?
Selection = function ()
{
TestUnique <- apply(Selection,2,unique)
MaxLen <- max(sapply(TestUnique,length))
TestUnique <- lapply(TestUnique,function(x)
{
c(x,rep('0',MaxLen-length(x)))
})
Selection.Unique <<- data.frame(TestUnique)
}
_____
From: jim holtman [mailto:[EMAIL PROTECTED]
Sent: 18 January 2007 02:28
To: Bert Jacobs
Cc: Petr Pikal; R help list
Subject: Re: [R] Fast Removing Duplicates from Every Column
Here is one way of doing it by 'padding' all the elements to the same
length:
> x <- "Col1 Col2 Col3 Col159 Col160
+ Row1 0 0 LD 0 VD
+ Row2 HD 0 0 0 MD
+ Row3 0 HD HD 0 LD
+ Row4 LD HD HD 0 0
+ LastRow HD HD LD 0 MD"
> input <- read.table(textConnection(x), header=TRUE)
> Uniq <- apply(input, 2, unique)
> # find maximum length of an element
> maxLen <- max(sapply(Uniq, length))
> # pad with '0' all element to maxLen
> Uniq <- lapply(Uniq, function(x){
+ c(x, rep('0', maxLen - length(x)))
+ })
> as.data.frame(Uniq)
Col1 Col2 Col3 Col159 Col160
1 0 0 LD 0 VD
2 HD HD 0 0 MD
3 LD 0 HD 0 LD
4 0 0 0 0 0
On 1/17/07, Bert Jacobs <[EMAIL PROTECTED]> wrote:
Hi,
Working further on this dataframe : my_data
Col1 Col2 Col3 ... Col 159 Col 160
Row 1 0 0 LD ... 0 VD
Row 2 HD 0 0 0 MD
Row 3 0 HD HD 0 LD
Row 4 LD HD HD 0 0
... ...
LastRow HD HD LD 0 MD
Running this line of code:
Test = apply(X=my_data, MARGIN=2, FUN=unique)
I get this list:
$Col1
[1] "0" "HD" "LD"
$Col2
[1] "0" "HD"
$Col3
[1] "LD" "0" "HD"
...
$Col159
[1] "0"
$Col160
[1] "VD" "MD" "LD" "0"
Now I was wondering how I can get this list into a data.frame:
because a simple data.frame doesn't work (error: arguments imply differing
number of rows)
Can someone help me out on this. Thx
So that I get the following result:
Col1 Col2 Col3 ... Col 159 Col 160
Row 1 0 0 LD 0 VD
Row 2 HD HD 0 0 MD
Row 3 LD 0 HD 0 LD
Row 4 0 0 0 0 0
-----Original Message-----
From: Petr Pikal [mailto:[EMAIL PROTECTED]
Sent: 05 January 2007 11:51
To: Bert Jacobs; 'R help list'
Subject: Re: [R] Fast Removing Duplicates from Every Column
Hi
I am not sure if I understand how do you want to select unique items.
with
sapply(DF, function(x) !duplicated(x))
you can get data frame with TRUE when an item in particular column is
unique and FALSE in opposite. However then you need to choose which
rows to keep or discard
e.g.
DF[rowSums(sapply(comp, function(x) !duplicated(x)))>1,]
selects all rows in which are 2 or more unique values.
HTH
Petr
On 5 Jan 2007 at 9:54, Bert Jacobs wrote:
From: "Bert Jacobs" <[EMAIL PROTECTED]>
To: "'R help list'" < <mailto:[email protected]>
[email protected]>
Date sent: Fri, 5 Jan 2007 09:54:17 +0100
Subject: Re: [R] Fast Removing Duplicates from Every Column
> Hi,
>
> I'm looking for some lines of code that does the following:
> I have a dataframe with 160 Columns and a number of rows (max 30):
>
> Col1 Col2 Col3 ... Col 159 Col 160
> Row 1 0 0 LD ... 0 VD
> Row 2 HD 0 0 0 MD
> Row 3 0 HD HD 0 LD
> Row 4 LD HD HD 0 0
> ... ...
> LastRow HD HD LD 0 MD
>
>
> Now I want a dataframe that looks like this. As you see all duplicates
> are removed. Can this dataframe be constructed in a fast way?
>
> Col1 Col2 Col3 ... Col 159 Col 160
> Row 1 0 0 LD 0 VD
> Row 2 HD HD 0 0 MD
> Row 3 LD 0 HD 0 LD
>
> Thx for helping me out.
> Bert
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html and provide commented,
> minimal, self-contained, reproducible code.
Petr Pikal
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.