我正在尝试连接两个表,其中连接的列具有一些NA值,以便在遇到NA时,记录用NA填充,即
鉴于:
> x = data.table(c(1,2,3,NA,5), c("a","b","c","d","e"))
> x
V1 V2
1: 1 a
2: 2 b
3: 3 c
4: NA d
5: 5 e
> y = data.table(c(NA,2,3,4,5), c("A","B","C","D","E"))
> y
V1 V2
1: NA A
2: 2 B
3: 3 C
4: 4 D
5: 5 E
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是:
> z = data.table(c(NA,NA,1,2,3,4,5),c("d",NA,"a","b","c",NA,"e"),c(NA,"A",NA,"B","C","D","E"))
> z
V1 V2 V3
1: NA d NA
2: NA NA A
3: 1 a NA
4: 2 b B
5: 3 c C …Run Code Online (Sandbox Code Playgroud) 我有一个小问题,例如
a <- as_tibble(c("201.1, 202 (abc) 203, 204", "301 / 302.22 def, 303"))
value
<chr>
1 201.1, 202 (abc) 203, 204
2 301 / 302.22 def, 303
Run Code Online (Sandbox Code Playgroud)
现在我想获得一个包含两列的 data.frame
[1,] 201.1 202
[2,] 301 302.22
Run Code Online (Sandbox Code Playgroud)
通过剪切第二个数字之后的所有内容(第一行中的 202,第二行中的 302.22)并使用分隔符“,”或“/”分隔表达式的剩余部分以获得两列。
我有这种类型的数据框
YEAR MONTH DAY HOUR LON LAT
1860 10 3 13 -19.50 3.00
1860 10 3 17 -19.50 4.00
1860 10 3 21 -19.50 5.00
1860 10 5 5 -20.50 6.00
1860 10 5 13 -21.50 7.00
1860 10 5 17 -21.50 8.00
1860 10 6 1 -22.50 9.00
1860 10 6 5 -22.50 10.00
1860 12 5 9 -22.50 -7.00
1860 12 5 18 -23.50 -8.00
1860 12 5 22 -23.50 -9.00
1860 12 6 6 -24.50 -10.00
1860 …Run Code Online (Sandbox Code Playgroud) 我有一个数据框
Id Name Affiliation
9 Ernest Jordan
14 K. MORIBE
15 D. Jakominich
25 William H. Nailon
37 P. B. Littlewood Cavendish Laboratory|Cambridge University
44 A. Kuroiwa Department of Molecular Biology|School of Science|Nagoya
75 M. Till-berg
Run Code Online (Sandbox Code Playgroud)
我想知道有多少行是不完整的,即缺少数据.在这种情况下,ID(9,14,15,25,75)的行有关联.所以在这种情况下结果应该是5.
我试过了
dim(author_data[complete.cases(author_data),])
Run Code Online (Sandbox Code Playgroud)
但它没有显示正确的结果.它输出为
7 3
Run Code Online (Sandbox Code Playgroud)
即7行3列
谢谢
我有一张美国地图,准备出发:
mygggmap <- get_map(location = "United States", zoom = 4)
g <- ggmap(myggmap)
下一步是绘制一些主要城市.
我知道我可以创建一个图层来绘制我的主要城市的经度和纬度,例如:
g <- g + geom_density2d(data = citydata, aes(x = lon, y = lat))
但我想知道是否有办法按实际名称,城市和州进行策划?由于ggmap是通过Google Map API分层的,这应该是可能的,对吗?
我试图匹配一列中的特定值,并将其替换为另一列(同一行)中的相应值.这可能是很容易的......我一直在试图找到一个解决方案for loop,sub,subset,data.table但我还没有成功.必须有一个巧妙的方法来做到这一点.
示例数据,我们的目标是a在第一列中交换第二列中的相应值并再次输出列.
df <- data.frame(rbind(c('a','D'),c('H','W'),c('Q','E'),c('a','F'),c('U','P'),c('a','B')))
df$X1 <- as.character(df$X1)
df$X2 <- as.character(df$X2)
# not working
for (i in seq_along(df$X1)){
a <- df$X1[i]
b <- df$X2[i]
x <- ifelse(a[i=='a'], a[i]<-b[i], do.nothing )
print(x)
}
Run Code Online (Sandbox Code Playgroud)
输出就像这样;
X1 X2
1 D a
2 H W
3 Q E
4 F a
5 U P
6 B a
Run Code Online (Sandbox Code Playgroud)
(不需要开关).这是我感兴趣的第一栏.
任何指针都将不胜感激,谢谢!
在我的数据框中,我有一个列,其中包含小写的议会成员的姓氏。我将第一个字母替换为大写(来自此答案):
# vector with names
lastname <- c("wortmann-kool", "mulder", "nistelrooij", "camp", "schaake", "veld", "lange", "oomen-ruijten")
# substituting first letter with uppercase
lastname <- gsub("^(\\w)(\\w+)", "\\U\\1\\L\\2", lastname, perl = TRUE)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有些名字带有连字符来分隔已婚女性的两个名字。如何将连字符后的第一个字母替换为大写?
如果我生成一个ggplot:
x <- rnorm( 10^3, mean=0, sd=1)
y <- rnorm( 10^3, mean=0, sd=1)
z=x^2+y^2
df <- data.frame(x,y,z)
ggplot(df)+geom_point(aes(x,y,color=z))
Run Code Online (Sandbox Code Playgroud)
默认情况下,这是以蓝色刻度绘制的.如何组合不同的颜色来制作新的比例?
在Windows Phone 8中,您可以使用:
(string)browser.InvokeScript("eval", "document.title.toString()");
Run Code Online (Sandbox Code Playgroud)
从浏览器返回页面标题.
您将如何在新的WP8.1 API中执行此操作
我有一个std::vector<std::vector<double>>,我想将其转换为a Rcpp::DataFrame或a Rcpp::NumericMatrix.
我目前的解决方案看起来像这样,它远非理想; 它产生了一个数字列表.
RcppExport SEXP Foo(...)
{
std::vector<std::vector<double>> result;
/// ... Do some work.
return Rcpp::wrap(result);
}
Run Code Online (Sandbox Code Playgroud)
注意事项:不会修复列数和行数.在每次运行之间,这些可以改变 我之所以提到这一点是因为到目前为止我发现的许多解决方案都涉及在编译时知道列.
如果可能的话,我希望解决方案完全包含在c ++中; 即R用户应该能够调用该函数,而不必将结果处理成数据帧或矩阵.
r ×9
dataframe ×3
ggplot2 ×2
c# ×1
c++ ×1
data.table ×1
delimiter ×1
ggmap ×1
google-maps ×1
missing-data ×1
rcpp ×1
regex ×1
replace ×1
strsplit ×1
subset ×1
substitution ×1
uppercase ×1