我正在尝试将因子列转换为多个布尔列,如下图所示.使用精美weatherData包裹检索数据来自气象站.我想要转换为多个布尔列的因子列包含11个因子.其中一些是单一的"事件",其中一些是"事件"的组合.
这是一个显示我想要实现的目标的图像:
这是R代码,它将生成具有组合因子的数据框,我想将其转换为几个布尔列:
df <- read.table(text="
date Events
1/8/2013 Rain
1/9/2013 Fog
1/10/2013 ''
1/11/2013 Fog-Rain
1/12/2013 Snow
1/13/2013 Rain-Snow
1/14/2013 Rain-Thunderstorm
1/15/2013 Thunderstorm
1/16/2013 Fog-Rain-Thunderstorm
1/17/2013 Fog-Thunderstorm
1/18/2013 Fog-Rain-Thunderstorm-Snow",
header=T)
df$date <- as.character(as.Date(df$date, "%m/%d/%Y"))
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我厌倦了谷歌的地理编码,并决定尝试替代方案.Data Science Toolkit(http://www.datasciencetoolkit.org)允许您对无限数量的地址进行地理编码.R有一个很好的包,可以作为其功能的包装(CRAN:RDSTK).该软件包具有一个street2coordinates()与Data Science Toolkit的地理编码实用程序接口的函数.
但是,street2coordinates()如果您尝试对像City,Country这样简单的地理编码,则RDSTK功能不起作用.在下面的例子中,我将尝试使用该函数来获取凤凰城的纬度和经度:
> require("RDSTK")
> street2coordinates("Phoenix+Arizona+United+States")
[1] full.address
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)
数据科学工具包的实用工具非常有效.这是提供答案的URL请求:http://www.datasciencetoolkit.org/maps/api/geocode/json?seamor = false& address = Phoenix + Arizona + UniteditedStates
我感兴趣的是对多个地址进行地理编码(完整的地址和城市名称).我知道Data Science Toolkit URL可以很好地工作.如何与URL连接并将多个纬度和经度带入具有地址的数据框?
这是一个示例数据集:
dff <- data.frame(address=c(
"Birmingham, Alabama, United States",
"Mobile, Alabama, United States",
"Phoenix, Arizona, United States",
"Tucson, Arizona, United States",
"Little Rock, Arkansas, United States",
"Berkeley, California, United States",
"Duarte, California, United States",
"Encinitas, California, United States", …Run Code Online (Sandbox Code Playgroud) 我有一个包含城市,州和国家列的数据框.我想创建一个串联的字符串:"城市,州,国家".但是,我的一个城市没有州(有一个国家NA).我希望那个城市的字符串是"城市,乡村".以下是创建错误字符串的代码:
# define City, State, Country
city <- c("Austin", "Knoxville", "Salk Lake City", "Prague")
state <- c("Texas", "Tennessee", "Utah", NA)
country <- c("United States", "United States", "United States", "Czech Rep")
# create data frame
dff <- data.frame(city, state, country)
# create full string
dff["string"] <- paste(city, state, country, sep=", ")
Run Code Online (Sandbox Code Playgroud)
当我显示时dff$string,我得到以下内容.请注意,最后一个字符串有一个NA,,不需要:
> dff["string"]
string
1 Austin, Texas, United States
2 Knoxville, Tennessee, United States
3 Salk Lake City, Utah, United States
4 …Run Code Online (Sandbox Code Playgroud) 问题与这一问题非常相似.它用于将数据帧列表组合成单个较长的数据帧.但是,我希望通过添加包含列表索引(id或source)的额外列来保留数据来自列表项的信息.
这是数据(来自链接示例的借用代码):
dfList <- NULL
set.seed(1)
for (i in 1:3) {
dfList[[i]] <- data.frame(a=sample(letters, 5, rep=T), b=rnorm(5), c=rnorm(5))
}
Run Code Online (Sandbox Code Playgroud)
使用下面的代码提供了连接数据框,但不添加列表索引的列:
df <- do.call("rbind", dfList)
Run Code Online (Sandbox Code Playgroud)
如何在创建列以捕获列表中的原点时连接列表中的数据框?类似于以下内容:

非常感谢你提前.
我试图从ClinicalTrials.gov的XML文件中提取信息.该文件按以下方式组织:
<clinical_study>
...
<brief_title>
...
<location>
<facility>
<name>
<address>
<city>
<state>
<zip>
<country>
</facility>
<status>
<contact>
<last_name>
<phone>
<email>
</contact>
</location>
<location>
...
</location>
...
</clinical_study>
Run Code Online (Sandbox Code Playgroud)
我可以在以下代码中使用CRAN的R XML包从XML文件中提取所有位置节点:
library(XML)
clinicalTrialUrl <- "http://clinicaltrials.gov/ct2/show/NCT01480479?resultsxml=true"
xmlDoc <- xmlParse(clinicalTrialUrl, useInternalNode=TRUE)
locations <- xmlToDataFrame(getNodeSet(xmlDoc,"//location"))
Run Code Online (Sandbox Code Playgroud)
这样做很好.但是,如果查看数据框,您会注意到xmlToDataFrame函数将所有内容集中在<facility>一个连接的字符串中.解决方案是编写代码以逐列生成数据框,例如,您可以生成