数据框sg如下:
v1 v2 v3
A B C
B A B
C A A
Run Code Online (Sandbox Code Playgroud)
我用了一个功能
definition <- funciton(x){
if (x =='A') definition <- paste(x, ": MINIMUM_RED")
else if (x =='B') definition <- paste(x, ": PASSIVE_RED") ## Passive red (no green demand during red)
else if (x =='C') definition <- paste(x, ": RED_REQUEST") ## During red the group has a green demand
else if (x =='D') definition <- paste(x, ": RED_PRIORITY")
else if (x =='E') definition <- paste(x, ": RED_PRIVILEGE") ## During …Run Code Online (Sandbox Code Playgroud) 我有如下嵌套列表,
dput( list(structure(c("123.60", " on"))))
Run Code Online (Sandbox Code Playgroud)
我有兴趣将此嵌套列表中的元素转换为数据帧.例如,输出应如下所示.
code description
123.60 not stated as uncontrolled, with neurological manifestations
123.50 not stated as uncontrolled, with ophthalmic manifestations
.
.
.
123.52 uncontrolled, with ophthalmic manifestations
Run Code Online (Sandbox Code Playgroud)
需要帮助将这些元素转换为数据框.
当我试图回答这个问题时,我遇到了一些非常奇怪的行为.下面我定义相同的数据两次,一次只是a data.frame和第二次使用mutate.我检查结果是否相同.然后我尝试做同样的过滤操作.对于第一个数据集,这是有效的,但对于第二个(相同的)数据集,它会失败.任何人都可以找出原因.
似乎这种差异的部分原因是使用ñ.但我不明白为什么这对第二个数据集来说是一个问题,但不是第一个.
# define the same data twice
datos1 <- data.frame(año = 2001:2005, gedad = c(letters[1:5]), año2 = 2001:2005)
datos2 <- data.frame(año = 2001:2005, gedad = c(letters[1:5])) %>% mutate(año2 = año)
# check that they are identical
identical(datos1, datos2)
# do same operation
datos1 %>% filter(año2 >= 2003)
## año gedad año2
## 1 2003 c 2003
## 2 2004 d 2004
## 3 2005 e 2005
datos2 %>% filter(año2 >= 2003) …Run Code Online (Sandbox Code Playgroud) 给出一个矢量:
labels <- c(1,2,3,3,3)
Run Code Online (Sandbox Code Playgroud)
如何获得所有可能的群组重新标记?对于这个例子:
1,2,3,3,3
1,3,2,2,2
2,1,3,3,3
2,3,1,1,1
3,1,2,2,2
3,2,1,1,1
Run Code Online (Sandbox Code Playgroud)
我一直在看permute包,但我不知道如何将它应用于这种情况.
搜索了一些不同的主题,但我没有找到完全相同的问题.我有一个方形相关矩阵,其中行/列名称是基因.切片的矩阵如下所示.
Xelaev15073085m Xelaev15073088m Xelaev15073090m Xelaev15073095m
Xelaev15000002m 0.1250128 -0.6368677 0.3119062 0.3980826
Xelaev15000006m 0.4127414 -0.8805597 0.6435158 0.9629489
Xelaev15000007m 0.4012530 -0.8854113 0.6425895 0.9614517
Run Code Online (Sandbox Code Playgroud)
我有一个数据框,其中包含我想从这个大矩阵中提取的基因对.
V1 V2
1 Xelaev15011657m Xelaev15017932m
2 Xelaev15011587m Xelaev15046612m
3 Xelaev15011594m Xelaev15046616m
4 Xelaev15011597m Xelaev15046617m
5 Xelaev15011603m Xelaev15046624m
6 Xelaev15011654m Xelaev15017928m
Run Code Online (Sandbox Code Playgroud)
我通过数据帧和输出试图环对中的基质细胞matrix["gene1","gene2"](例如,值进行比较时0.1250128 Xelaev15073085m和Xelaev15000002m).在单个基因的基础上这样做很容易,但是我在for循环中为这个列表中的数千对做这个尝试是失败的.在下面的示例中,headinglist是上面数据帧的样本,而FullcorSM是完整的相关矩阵.
for(i in headedlist$V1){
data.frame(i, headedlist[i,2], FullcorSM[i,headedlist[i,2]])
}
Run Code Online (Sandbox Code Playgroud)
以上行是我的第一次尝试并返回null.我的第二次尝试如下所示.
for(i in 1:nrow(stagelist)){
write.table(data.frame(stagelist$V1, stagelist$V2, FullcorSM["stagelist$V1","stagelist$V2"]),
file="sampleout",
sep="\t",quote=F)
}
Run Code Online (Sandbox Code Playgroud)
这会返回一个越界错误.要做第二个没有引号的FullcorSM["stagelist$V1", "stagelist$V2"]部分示例返回第一列的第二列的所有值,更接近我想要的但仍然缺少一些关于R如何解释我的矩阵/数据帧语法的知识,但它我不清楚修复是什么.有关如何进行的任何见解?
我有一个情节,我已经介绍了垂直x轴标签las = 2.那些标签是文字.分类词.这些词太长了,它们的范围很远.我的情节中没有主要标题(不需要),因此图像顶部有足够的空间.但是我该如何改变一切呢?我找到了名为mai和的参数代码mar.但他们没有改变任何事情.
我试图通过将第三个值mar("top")设置为0 来使用mar.所以我想在顶部有0个边距.情节保持原样:/
这是我的代码(x标签的德语单词):
categories <- c("Introvertiert", "Selbstbewusst", "Kooperativ", "Ehrgeizig",
"Einfühlsam", "Autoritär", "Temperamentvoll", "Flexibel", "Tolerant", "Teamfähig",
"Zielorientiert", "Überheblich", "Vielseitig", "Ungeduldig", "Zuverlässig", "Eigensinnig",
"Anpassungsfähig", "Souverän", "Selbstkritisch", "Entscheidungsfreudig", "Intelligent",
"Kontaktfreudig", "Kreativ", "Stressresistent", "Hilfsbereit", "Emotional",
"Kompromissbereit", "Gesellig", "Standhaft", "Pünktlich", "Unruhig", "Tatkräftig",
"Aufgeschlossen", "Fröhlich", "Zuvorkommend", "Uneigennützig", "Selbstbeherrscht",
"Schüchtern", "Freundlich", "Sprachgewandt")
x <- seq(1,40)
y <- seq(1,40)
plot(x,y,xaxt="n",main="", mar=c(5, 4, 0, 2) + 0.1, xlab ="")
axis(1, at=1:40, labels=categories, las = 2, cex.axis = 0.8)
Run Code Online (Sandbox Code Playgroud) 我在数据框 (x) 中有一个列,我想使用该dist(x$columnname)函数找到所有条目之间的成对距离。输出是一个距离矩阵,但如果我使用该writeClipboard函数将数据复制到 excel 中,我会得到所有成对距离的列表。有没有办法可以将它复制到 excel 中保持矩阵格式不变?
我想从一个比例来引导置信区间data.frame.我想在我的一个列中获得变量的结果.我已设法为矢量执行引导程序,但不知道如何data.frame从此处将其扩展到a .一个简化示例,将阈值设置为10并查看数据中小于10的比例.
矢量解决方案
library(boot)
vec <- abs(rnorm(1000)*10) #generate example vector
data_to_tb <- vec
tb <- function(data) {
sum(data < 10, na.rm = FALSE)/length(data) #function for generating the proportion
}
tb(data_to_tb)
boot.out <- boot(data = data_to_tb, function(u,i) tb(u[i]), R = 999)
quantile(boot.out$t, c(.025,.975))
Run Code Online (Sandbox Code Playgroud)
从这里开始,我想对data.frame包含两列的内容做同样的事情.data.frame如果可能的话,我希望以" (x,样本,比例,CI)列的形式返回结果" :
x n proportion CI
A xx xx xx
B xx xx xx
C xx xx xx
Run Code Online (Sandbox Code Playgroud)
如果dplyr可以使用包装会更好.以下是我的数据的简化示例:
例:
dataframe <- data.frame(x = sample(c("A","B","C"),100,replace = TRUE), …Run Code Online (Sandbox Code Playgroud) 我html在不同的显示器/分辨率上显示我的网站时遇到问题。我试图用以下脚本解决这个问题,但它不起作用。我该如何改进?
if (width <= 1280 && height <= 720) {
document.getElementById('html').style.zoom = '50%';Run Code Online (Sandbox Code Playgroud)
html {
zoom: 100%;
}Run Code Online (Sandbox Code Playgroud)
我有一个像这样的数据框架
Number Type Time
4 B 10
5 B 11
5 B 9
1 B 8
8 R 7
3 R 9
4 R 5
4 R 5
Run Code Online (Sandbox Code Playgroud)
我按类型分组并希望创建一个名为"Adjusted_Time"的新列,其中包含之前的数字时间,最终的Df看起来像这样
Number Type Time Adjusted_Time
4 B 10 8
5 B 11 10
6 B 9 11
3 B 8 N/A
8 R 7 9
7 R 9 5
6 R 5 5
5 R 5 N/A
Run Code Online (Sandbox Code Playgroud)
只要没有直接低于该数字的数字,N/A就会去.我现在想用dplyr吧
df %>% group_by(Type) %>% Mutate(Adjusted_Time = ....)
Run Code Online (Sandbox Code Playgroud) 我想用 ggplot2 做一个图表,其中我需要截距 (=1) 和值(我通过 geom_line 连接)之间的空间/面积为红色(如果值小于 1)或绿色(如果值大于 1)。数据来自微软(自 1999 年以来的价格表现)。
数据:
require(quantmod)
require(dplyr)
require(ggplot2)
getSymbols("MSFT", from ="1999-01-01")
microsoft <- data.frame(time(MSFT), MSFT[,6])
microsoft$time <- as.Date(microsoft$time.MSFT., "%Y-%m-%d")
microsoft <- microsoft %>%
mutate(change = MSFT.Adjusted - first(MSFT.Adjusted),
change.pc = change/first(MSFT.Adjusted)+1)
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的ggplot:
ggplot(microsoft, aes(x = time, y = change.pc)) +
geom_line(stat = "identity") +
geom_hline(aes(yintercept=1), color="black") +
theme_bw() +
xlab("Jahr") + ylab("") +
ggtitle("Microsoft Kursentwicklung seit Januar 1999")
Run Code Online (Sandbox Code Playgroud)
我想用绿色填充 y = 1 和上面的值之间的空间,用红色填充 y = 1 和下面的值之间的空间。我尝试了 geom_ribbon、geom_area、geom_polynom,但没有任何效果。最大的问题是,它填充了绿色空间,但不是在线 y = 1 以上,但也低于在线。还有你看不到的红色……
这是我尝试过的: …
我想先连续添加一个ggplot对象.但我不能得到以下所谓的简单代码:
数据框包含我想要绘制0到20期间的时间序列.
p <- ggplot(data=dfp, aes(x=seq(0,20,1), y=dfp) )
for (i in 1:7) {
p <- p + geom_line(aes(y=dfp[i]))
}
p
Run Code Online (Sandbox Code Playgroud)