Skip to main content Skip to navigation
CEREO September 2017

NSF Graduate Research Fellowship Program (GRFP)

The purpose of the NSF Graduate Research Fellowship Program (GRFP) is to help ensure the vitality and diversity of the scientific and engineering workforce of the United States. The program recognizes and supports outstanding graduate students who are pursuing research-based master’s and doctoral degrees in science, technology, engineering, and mathematics (STEM) or in STEM education. The GRFP provides three years of support for the graduate education of individuals who have demonstrated their potential for significant research achievements in STEM or STEM education. NSF especially encourages women, members of underrepresented minority groups, persons with disabilities, veterans, and undergraduate seniors to apply.

Full Proposal Deadline Date (received by 5 p.m. local time of applicant’s mailing address)
October 23, 2017 Life Sciences, Geosciences
October 24, 2017 Computer and information Science and Engineering, Engineering, Materials
October 26, 2017 Psychology, Social Sciences, STEM Education and Learning
October 27, 2017 Chemistry, Mathematical Sciences, Physics and Astronomy

For more information

2017 Palouse Basin Water Summit – Imagine a Day Without Water – October 19th

Thursday, October 19th from 4:30 – 7:30pm at the SEL Event Center in Pullman. Visit:
Keynote, Patricia Mulroy, is a Senior Fellow for Climate Adaptation and Environmental Policy, Boyd School of Law at the University of Nevada at Las Vegas.
At the Summit, we’ll also discuss the current state of the Palouse Basin and the recent study findings on increasing our water supplies for our homes, businesses, universities and the next generation. We’ll also hear from local water conservation managers about some exciting new ways to conserve water through wisescape landscaping.
Please join us at this free community event. Be a part of building stronger water and wastewater systems now so no community in America, including the Palouse, has to imagine living a day without water.

CO-Sponser, Water Research Center 

The Molly K. Macauley Award for Research Innovation and Advanced Analytics for Policy

Short Pre-Proposals due December 5, 2017
(Invited) Final Proposals due February 28, 2018
seeking proposals for new research that will support and enhance the activities of the Consortium for the Valuation of Applications Benefits Linked to Earth Science (VALUABLES), a new consortium at RFF made possible through a partnership with the National Aeronautics and Space Administration (NASA). VALUABLES is focused on advancing innovative uses of existing methods and developing new techniques for valuing the information provided by Earth observations, especially those derived from satellites and aircraft.

For more information and to submit

CEREO Roundtable Discussion- 20 October 2017 12:00-1:30pm, PACCAR 305

CEREO is hosting an open roundtable discussion on October 20, 2017 at 12:00-1:30pm, PACCAR 305 to assess possibilities for collaboration and funding in the area of plant-microbe interactions. This discussion will be led by Dr. Maren Friesen, a new Assistant Professor in the Dept. of Crop and Soil Sciences. If you are planning on attending, please RSVP Jacqueline McCabe by Friday October 13 5:00pm, as we will be providing a light lunch.


Troubleshooting: Data importing, database IDs, and Plotly tables

#### Issue 1####
#importing data using the “point and click” method in R studio leads to different data structures
#how to make match data structure from read.csv()?

# Input with point and click

#input with read.csv() command
dat <- read.csv(“WeedAbundance.csv”)

#lets make it match in type
WA <- data.frame(WeedAbundance)

#lets make the specific row match in type
WA$Location <- as.factor(WA$Location)


#### Issue 2####

#Two different names one column.
#want to consolidate into single named variable and keep the record of the index
#so that we can still go between databases

m[‘Vendor.WSUID’] <- stringr::str_extract(m$Comment, “(?i)VENDOR #\\d+”)
m[‘VID’] <- stringr::str_extract(m$Comment, “(?i)V#\\d+”)

d <- c(“Vendor #3452345”, “V#23245234”)
lapply(d, function(i) { strsplit(i, “#”)[[1]][[2]]})

lapply(blah blah paste0(col1, col2, collapse = TRUE))


#### Issue 3####

#Indexing tables output from Plotly.

#This issue was addressed after our session by contributor Julia Piaskowski, who solved the error:


Indexing Tables From Plotly output

Submitted by our Working Group member Julia Piaskowski. We discussed this a bit in Trouble Shooting, but its relevant to anyone using Plotly. Thanks Julia! :

Plotly is an enormously handy set of interactive plotting function that have been developed for R, Python and D3.js. One very useful feature of plotly is “event_data” where users are able to click on or select parts of the plot for more information or to create new plots from the selected output. There’s several types of event_data, but I am focusing on “plotly_selected” where a user selects several points using a lasso or box selection tool.

I am using plotly in R/Shiny to create an interactive plot. The idea seemed simple: generate a bivariate scatterplot colored by a factor in the data set. Users should be able to select a region of interest, and the full data from those observations will be presented in a table. However, the indexing was not working using the usual mydata[rows,columns] method – it worked for some observations, but not others.

The problem was that the data were being unstacked by the grouping variable used to color the plot, essentially creating a separate a rowXcolumn object for each level of the grouping variable.

The solution was slightly complicated, requiring both subsetting the object AND the plotly event_data. A small example is shown below. A bigger demo is at:


# Make data
mydata<-data.frame(Name = replicate(10,paste(sample(LETTERS,3),collapse = “”)),
a = 1:10,b = sample(1:100,10),c = rep(c(“up”,”down”),5),
d = paste0(“secret_data”,1:10))

# Generate the Display (ultra simple in this example)

ui <- fluidPage(
column(6, tags$h3(“Basic Plot”), plotlyOutput(“Plot1”, height = “300px”)) ,
column(6, tags$h3(“Selected Output”), tableOutput(“clickTable”))

# server info
server <- function(input, output){

output$Plot1 %>%
dragmode = “select”)

output$clickTable <-renderTable({ <- event_data(“plotly_selected”, source = “subset”)

if(is.null( == T) return(“Choose individuals by selecting a region in the scatterplot”) else {

# Get index from each group
# This is the where indexing was failing previously. The scripts must reference both the group variable (called the “curveNumber” AND the observation (the “pointNumber”). Not to be outdone by something more confusing, plotly is going against R convention and starting their indexing at zero – hence the use of “0” for the “up” group, and why a value of 1 is added to each “pointNumber”. <- subset(mydata, c == “up”)[subset(, curveNumber == 0)$pointNumber + 1,] <- subset(mydata, c == “down”)[subset(, curveNumber == 1)$pointNumber + 1,]

# Combine and make table
table.subset <- rbind(,


shinyApp(ui = ui, server = server)

Scientific Assistant Position: Washington State University, Stable Isotope Core Laboratory

Assist the laboratory manager for the WSU stable isotope core facility. Help develop innovative approaches and methodologies in stable isotope analyses. Interact with the Laboratory Information Management database. Maintain facility web page. Ensure satisfactory operation of specialized research equipment to serve needs of the facility. Train personnel in preparation of samples and equipment usage. Supervise student workers. Maintain lab inventory and make lab orders. Implement laboratory QA/QC and safety protocols. In addition, the incumbent performs routine maintenance on specialized research equipment; analyzes and interprets initial equipment output; and schedules lab resources to process tasks at hand. This position supervises and delegates responsibilities to student workers in the laboratory.
To view the full description and apply online visit:


Word Clouds

Today Stephanie Labou spoke about text mining and word clouds. Our script today used the “tm” and “wordcloud” packages.

Some questions were asked at our session, primarily 1) can you mine PDFs? The answer is yes! You can! You can find more information about reading in text from PDFs here and here and here is the online book about text mining in R (including sentiment analysis and n-grams).

Here is some example text to run with the script: data_skills_ms , sourced from Stephanie Labou’s paper

Here is the script: WordCloudScript!

Intro to R

This week was our introduction to R lecture. This lecture was a brief overview of what R is and how to use it, with the goal of making the newer R users in our community literate in R syntax. For this session users needed to have downloaded both R and R Studio.

First we discussed what R is, along with some great resources that people can use to learn R. The first resource comes from the Software Carpentry team: The second is from one of our fellow R group members, Rachel Olsson, and is an introduction for new users designed for one of her labs, but applicable here. Make sure to download both the Lab1 Walkthrough and the Floral_diversity dataset.

The R script for our session (in .txt), along with the notes we added to it in class: IntroRScript