使用旧select_()函数,我可以将命名向量传递给select并立即更改位置和列名:
my_data <- data_frame(foo = 0:10, bar = 10:20, meh = 20:30)
my_newnames <- c("newbar" = "bar", "newfoo" = "foo")
move_stuff <- function(df, newnames) {
select_(df, .dots = newnames)
}
move_stuff(my_data, newnames = my_newnames) )
# this is the desired output
# A tibble: 4 x 2
newbar newfoo
<int> <int>
1 10 0
2 11 1
3 12 2
4 13 3
Run Code Online (Sandbox Code Playgroud)
我尝试使用quosures和拼接做类似的事情 - 选择列效果很好,但是矢量的名称(因此同时重命名列)似乎被忽略了.以下两个都返回数据框,列中包含名称bar和foo,但不是newbar和newfoo:
move_stuff2 <- function(df, newnames) …Run Code Online (Sandbox Code Playgroud) 我试过通过论坛搜索,但无法找到帮助.我对R很陌生,并且在加载一些字符串以用作公式方面成功有限.
我有一个csv具有以下格式:
Sam, Frank, Dennis, Steven, Robert, Georgia
Region_1 218, 763, 811, 812, 797, 574
Region_2 474, 983, 343, 697, 310, 335
Region_3 700, 813, 133, 212, 906, 680
Region_4 212, 581, 893, 514, 530, 795
Run Code Online (Sandbox Code Playgroud)
我可以加载它并在我的数据框中添加额外的列,添加特定的列(即Sam + Frank,Dennis + Georgia).
如果我将团队硬编码到我的代码中,我可以做到,例如:
temp <- mutate(temp, team_1 = Sam + Robert)
Run Code Online (Sandbox Code Playgroud)
我的问题是我有另一个包含2列列表的csv,这些是每天更改的团队,例如:
Team 1 Sam + Robert
Team 2 Frank + Georgia
Team 3 Frank + Steven
Team 4 Robert + Dennis
Team 5 Frank + Sam
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将此csv列表加载到R中并将这些团队成员列添加到一起.
但是我无法在csv文件中看到添加此列表,并且动态地拥有一个包含团队成员总数的新数据框.
有人能帮我这个吗?
我希望最终得到这样的结果(将团队成员(团队1,团队2等来自第二个csv文件)的总和作为附加列: …
我正在应用Aprior算法,并且在绘图时出现错误.
我已经安装了包arules和arulesviz.
数据有3个属性.两个被分解,一个属性未分解.我分别采用了属性属性和应用因子函数.代码如下:
New_Train_Wifi = read.xlsx("D:/Train_Test.xls",1)
str(New_Train_Wifi)
'data.frame': 2201 obs. of 3 variables:
$ Wifi_ID: Factor w/ 4 levels "1st","2nd","3rd",..: 3 3 3 3 3 3 3 3 3 3 ...
$ Store : Factor w/ 5 levels "Book_Store","Clothing",..: 3 3 3 3 3 3 3 3 3 3 ...
$ Mac_ID : num 125 125 125 125 125 125 125 125 125 125 ...
A <- as.factor(Test_ARM_ABC$Wifi_ID)
C <- as.factor(New_Train_Wifi$Mac_ID)
New_Train_Wifi$MacID <- NULL
New_Train_Wifi$MacID <- …Run Code Online (Sandbox Code Playgroud) 我正在研究特定海底结构周围鲸鱼分布的模式.我正在尝试创建一个同时显示的交互式3D图:
x=经度,y=纬度,z=深度),和x=经度,y=纬度,z=固定深度 - 例如30米).坐标在UTM坐标系中投影.
我通常使用R和ggplot2生成数字的包.在这里,plotly包装似乎是一个很好的选择.
我从一个测深光栅bathy_ras和一个数据点开始points.
> bathy_ras
class : RasterLayer
dimensions : 784, 821, 643664 (nrow, ncol, ncell)
resolution : 102, 111 (x, y)
extent : 755070, 838812, -2612148, -2525124 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=58S +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : bathymetry
values : -1949.42, …Run Code Online (Sandbox Code Playgroud) 我有一个使用3类数据的分组箱图.一个类别设置为箱图的x轴,另一个设置为填充,最后一个设置为分面类别.我想显示每个填充组stat_summary的平均值,但是仅使用给出了x轴类别的平均值,而没有分离填充的平均值:
这是当前的代码:
demoplot<-ggplot(demo,aes(x=variable,y=value))
demoplot+geom_boxplot(aes(fill=category2),position=position_dodge(.9))+
stat_summary(fun.y=mean, colour="black", geom="point", shape=18, size=4,) +
facet_wrap(~category1)
Run Code Online (Sandbox Code Playgroud)
有没有办法显示每个类别2的均值,而无需手动计算和绘制点数?调整位置闪避并没有多大帮助,因为它只是一个计算平均值.是否可以在mean()函数内创建条件?
感谢对此的任何启示.
的背景
我有一个问题,其中有许多解决方案可能,但我相信有一个尚未发现的优雅解决方案利用purrr.
示例代码
我有一个如下的大数据框,我在其中包含了一个例子:
library(tibble)
library(ggmap)
library(purrr)
library(dplyr)
# Define Example Data
df <- frame_data(
~Street, ~City, ~State, ~Zip, ~lon, ~lat,
"226 W 46th St", "New York", "New York", 10036, -73.9867, 40.75902,
"5th Ave", "New York", "New York", 10022, NA, NA,
"75 Broadway", "New York", "New York", 10006, -74.01205, 40.70814,
"350 5th Ave", "New York", "New York", 10118, -73.98566, 40.74871,
"20 Sagamore Hill Rd", "Oyster Bay", "New York", 11771, NA, NA,
"45 Rockefeller Plaza", "New York", "New York", 10111, -73.97771, …Run Code Online (Sandbox Code Playgroud) 好的,这是我希望使用高效,优雅的解决方案解决的问题,例如data.table或dplyr.
限定:
DT = data.table(group=c(rep("A",3),rep("B",5)),value=c(2,9,2,3,4,1,0,3))
time group value
1: 1 A 2
2: 2 A 9
3: 3 A 2
4: 1 B 3
5: 2 B 4
6: 3 B 1
7: 4 B 0
8: 5 B 3
Run Code Online (Sandbox Code Playgroud)
我想要得到的是一组累计和的值除以它们被观察的时刻的逆序.
time group value RESULT
1: 1 A 2 2.000000
2: 2 A 9 10.000000
3: 3 A 2 7.166667
4: 1 B 3 3.000000
5: 2 B 4 5.500000
6: 3 B 1 4.000000
7: 4 B 0 2.583333 …Run Code Online (Sandbox Code Playgroud) 我有这些数据
library(ggplot2)
dat = data.frame(x = c(1,2,1,2),
group = c("a","a","b","b"),
y = c(10,20,1000,2000))
ggplot(dat, aes(x = x, y = y)) +
geom_point() +
geom_line() +
facet_wrap(~group, ncol = 1) +
coord_cartesian(ylim = c(0, 30))
Run Code Online (Sandbox Code Playgroud)
您可以看到B组未显示,因为我将y限制设置为0,30.我想手动为每个图表设置单独的y限制.我不想使用,scales = "free_y"因为我需要控制每个图表中的限制.
有没有办法可以做到这一点?你能以某种方式为小平面包装中的每个图表提供y限制吗?
我试图在其他人编写的代码中理解 R 中这条语句的含义。
mymodel = lm(gene ~ ., data = mydata)
Run Code Online (Sandbox Code Playgroud)
mydata 如下:
> mydata
gene cna rs11433683 PC1 PC2
TCGA.BH.A0C0 270.7446 0.1291 0 270.7446 0.1291
TCGA.A2.A3XY 87.9092 0.0128 1 87.9092 0.0128
TCGA.XX.A89A 255.1346 0.1530 1 255.1346 0.1530
Run Code Online (Sandbox Code Playgroud)
我已经浏览了 R 帮助部分以了解如何.解释。我知道这.通常不被使用,但这是我发现的
help(formula)
Run Code Online (Sandbox Code Playgroud)
.在一个公式中有两种特殊的解释。通常的一个是在data模型拟合函数参数的上下文中,意思是“所有不在公式中的列”:参见terms.formula。在update.formula, only的上下文中,它的意思是“公式的这一部分以前是什么”
help(terms.formula)
Run Code Online (Sandbox Code Playgroud)
AllowDotAsName:通常
.在公式中是指包含在data. 在特殊情况下,.可以将其视为公式的非标准用途的名称。
data: 一个数据帧,.可以从中推断出特殊符号的含义。如果.公式中没有,则不使用。
但是,我不太确定这些陈述的含义。有人能给我一个简单的例子,说明在我上面提到的语句和数据的上下文中它的含义吗?
我想在同一图像中有多个图,我想根据图像得到不同数量的图.确切地说,我首先创建一个1x2的图表矩阵,然后创建一个3x2的图表矩阵.我想对这两个图像使用相同的基本设置 - 特别是相同的字体大小,因为这是针对纸张的,并且字体大小必须至少为6磅.
为了实现这一点,我为R编写了以下代码:
filename = "test.png"
font.pt = 6 # font size in pts (1/72 inches)
total.w = 3 # total width in inches
plot.ar = 4/3 # aspect ratio for single plot
mat.col = 2 # number of columns
mat.row = 1 # number of rows
dpi = 300
plot.mar = c(3, 3, 1, 2) + 0.1
plot.mgp = c(2, 1, 0)
plot.w = total.w / mat.col - 0.2 * plot.mar[2] - 0.2 * plot.mar[4]
plot.h = plot.w …Run Code Online (Sandbox Code Playgroud)