Spread R
🛑 ALL INFORMATION CLICK HERE 👈🏻👈🏻👈🏻
Spread R
About Course
Getting Started
Getting Data
Tidy Data
Graphics
The first tidyr function we will look into is the spread() function. With spread() it does similar to what you would expect. We have a data frame where some of the rows contain information that is really a variable name. This means the columns are a combination of variable names as well as some data. The picture below displays this:
We can consider the following data which is table 2:
Notice that in the column of key , instead of there being values we see the following variable names:
In order to use this data we need to have it so the data frame looks like this instead:
Now we can see that we have all the columns representing the variables we are interested in and each of the rows is now a complete observation.
In order to do this we need to learn about the spread() function:
If we consider piping , we can write this as:
Now if we consider table2 , we can see that we have:
Now this table was made for this example so key is the key in our spread() function and value is the value in our spread() function. We can fix this with the following code:
We can now see that we have a variable named cases and a variable named population . This is much most tidy.
We first will load tidyverse. If you have not installed it run the following code:
In this example we will use the dataset population that is part of tidyverse. Print this data:
You should see the table that we have above, now We have a variable named year , assume that we wish to actually have each year as its own variable. Using the spread() function, redo this data so that each year is a variable. Your data will look like this at the end:
Ошибка при установлении защищённого соединения
Страница, которую вы пытаетесь просмотреть, не может быть отображена, так как достоверность полученных данных не может быть проверена.
Пожалуйста, свяжитесь с владельцами веб-сайта и проинформируйте их об этой проблеме.
Во время загрузки страницы соединение с polywad.com было прервано.
Отправка сообщений о подобных ошибках поможет Mozilla обнаружить и заблокировать вредоносные сайты
Сообщить
Попробовать снова
Отправка сообщения
Сообщение отправлено
использует защитную технологию, которая является устаревшей и уязвимой для атаки. Злоумышленник может легко выявить информацию, которая, как вы думали, находится в безопасности.
spread ( data , key , value , fill = NA , convert = FALSE , drop = TRUE , sep = NULL )
library ( dplyr )
stocks <- data.frame (
time = as.Date ( '2009-01-01' ) + 0 : 9 ,
X = rnorm ( 10 , 0 , 1 ) ,
Y = rnorm ( 10 , 0 , 2 ) ,
Z = rnorm ( 10 , 0 , 4 )
)
stocksm <- stocks %>% gather ( stock , price , - time )
stocksm %>% spread ( stock , price )
#> time X Y Z
#> 1 2009-01-01 -1.1754938 0.6336561 -5.9265184
#> 2 2009-01-02 -1.0627343 -0.7106185 -0.2012541
#> 3 2009-01-03 -1.0705238 -3.5392503 -3.1825495
#> 4 2009-01-04 2.5011843 -1.7321029 1.2650120
#> 5 2009-01-05 -1.5898217 0.6577330 -0.3982349
#> 6 2009-01-06 0.3959386 -4.6752217 -2.5660559
#> 7 2009-01-07 1.0122784 1.2544913 -0.4143983
#> 8 2009-01-08 0.7512999 -2.3759464 2.4637004
#> 9 2009-01-09 0.6575822 -0.9047347 1.2471138
#> 10 2009-01-10 -0.4650852 -0.5436360 -3.1626294
stocksm %>% spread ( time , price )
#> stock 2009-01-01 2009-01-02 2009-01-03 2009-01-04 2009-01-05 2009-01-06
#> 1 X -1.1754938 -1.0627343 -1.070524 2.501184 -1.5898217 0.3959386
#> 2 Y 0.6336561 -0.7106185 -3.539250 -1.732103 0.6577330 -4.6752217
#> 3 Z -5.9265184 -0.2012541 -3.182550 1.265012 -0.3982349 -2.5660559
#> 2009-01-07 2009-01-08 2009-01-09 2009-01-10
#> 1 1.0122784 0.7512999 0.6575822 -0.4650852
#> 2 1.2544913 -2.3759464 -0.9047347 -0.5436360
#> 3 -0.4143983 2.4637004 1.2471138 -3.1626294
# Spread and gather are complements
df <- data.frame ( x = c ( "a" , "b" ) , y = c ( 3 , 4 ) , z = c ( 5 , 6 ) )
df %>% spread ( x , y ) %>% gather ( "x" , "y" , a : b , na.rm = TRUE )
#> z x y
#> 1 5 a 3
#> 4 6 b 4
# Use 'convert = TRUE' to produce variables of mixed type
df <- data.frame ( row = rep ( c ( 1 , 51 ) , each = 3 ) ,
var = c ( "Sepal.Length" , "Species" , "Species_num" ) ,
value = c ( 5.1 , "setosa" , 1 , 7.0 , "versicolor" , 2 ) )
df %>% spread ( var , value ) %>% str
#> 'data.frame': 2 obs. of 4 variables:
#> $ row : num 1 51
#> $ Sepal.Length: chr "5.1" "7"
#> $ Species : chr "setosa" "versicolor"
#> $ Species_num : chr "1" "2"
df %>% spread ( var , value , convert = TRUE ) %>% str
#> 'data.frame': 2 obs. of 4 variables:
#> $ row : num 1 51
#> $ Sepal.Length: num 5.1 7
#> $ Species : chr "setosa" "versicolor"
#> $ Species_num : int 1 2
Development on spread() is complete, and for new code we recommend
switching to pivot_wider() , which is easier to use, more featureful, and
still under active development.
df %>% spread(key, value) is equivalent to
df %>% pivot_wider(names_from = key, values_from = value)
See more details in vignette("pivot") .
Column names or positions. This is passed to
tidyselect::vars_pull() .
These arguments are passed by expression and support
quasiquotation (you can unquote column
names or column positions).
If set, missing values will be replaced with this value. Note
that there are two types of missingness in the input: explicit missing
values (i.e. NA ), and implicit missings, rows that simply aren't
present. Both types of missing value will be replaced by fill .
If TRUE , type.convert() with asis =
TRUE will be run on each of the new columns. This is useful if the value
column was a mix of variables that was coerced to a string. If the class of
the value column was factor or date, note that will not be true of the new
columns that are produced, which are coerced to character before type
conversion.
If FALSE , will keep factor levels that don't appear in the
data, filling in missing combinations with fill .
If NULL , the column names will be taken from the values of
key variable. If non- NULL , the column names will be given
by "" .
Developed by Hadley Wickham , Maximilian Girlich.
Sign up or log in to customize your list.
more stack exchange communities
company blog
Stack Overflow for Teams
– Start collaborating and sharing organizational knowledge.
Create a free Team
Why Teams?
Asked
2 years, 10 months ago
Modified
2 years, 10 months ago
This question already has an answer here :
Spread with duplicate identifiers (using tidyverse and %>%) [duplicate]
(1 answer)
507 4 4 silver badges 18 18 bronze badges
Highest score (default)
Trending (recent votes count more)
Date modified (newest first)
Date created (oldest first)
42.5k 17 17 gold badges 31 31 silver badges 63 63 bronze badges
Stack Overflow
Questions
Help
Products
Teams
Advertising
Collectives
Talent
Company
About
Press
Work Here
Legal
Privacy Policy
Terms of Service
Contact Us
Cookie Settings
Cookie Policy
Stack Exchange Network
Technology
Culture & recreation
Life & arts
Science
Professional
Business
API
Data
Accept all cookies
Customize settings
Find centralized, trusted content and collaborate around the technologies you use most.
Connect and share knowledge within a single location that is structured and easy to search.
I am trying to spread a single column in an R dataframe. I have reviewed many posts on SO, but cant get my solution to work because most solutions seem to require a formula (count, mean, sum, etc). I am simply looking to spread a column of characters. For example:
How would I accomplish this? I tried spread() and pivot_wider() but neither work. Any thoughts? The actual dataset is quite large (over 300k rows of data) that will need transposed in this manner if that makes a difference.
Trending sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.
It falls back to sorting by highest score if no posts are trending.
For each group you specify the student number and spread according to that
You need to specify the student1, student2 and student3 before you use spread(). I'd suggest adding a new column to spread by, for example:
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2022.9.7.42963
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy .
Porno Ot Naughty America
Sperm Sea
Sperm River