我有下面的数据框
df_Place:
Name|Places
----+-----------------------
abc |delhi
bcd |mumbai,delhi
cde |chennai,hyderabad,delhi
def |mumbai
efg |bangalore,mumbai
ghi |delhi,bangalore
Run Code Online (Sandbox Code Playgroud)
我想要矩阵形式的位置,所以我做了以下操作
df_Place$matrix<-as.matrix(strsplit(df_Place$Place,","))
Run Code Online (Sandbox Code Playgroud)
我得到下面的数据框
Name|Places |matrix
----+-----------------------+------------------------------
abc |delhi |delhi
bcd |mumbai,delhi |c("mumbai","delhi")
cde |chennai,hyderabad,delhi|c("chennai","hyderabad","delhi")
def |mumbai |mumbai
efg |bangalore,mumbai |c("bangalore","mumbai")
ghi |delhi,bangalore |c("delhi","bangalore")
Run Code Online (Sandbox Code Playgroud)
现在,在尝试将其写入 csv 时,
write.csv(df_Place,"tx.csv")
出现以下错误:
.External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, 中的错误:“EncodeElement”中未实现的类型“list”**
但如果我删除矩阵列,那么它就会成功写入。
我知道这将是非常基本的,但是有人可以解释这背后的原因吗?
我想计算一个单词出现的次数,但每行只出现一次。我如何完成代码?
library(stringr)
var1 <- c("x", "x", "x", "x", "x", "x", "y", "y", "y", "y")
var2 <- c("x", "x", "b", "b", "c", "d", "e", "y", "g", "h")
var3 <- c("x", "x", "b", "b", "c", "d", "e", "y", "g", "h")
data <- data.frame(cbind(var1, var2, var3))
sum(str_count(data, "x"))
Run Code Online (Sandbox Code Playgroud)
结果应该是 6。
我有这些数据:
> dput(df)
structure(list(Freq = c(41L, 31L, 11L, 0L), group = structure(c(1L,
1L, 2L, 2L), .Label = c("A", "B"), class = "factor"), Survived = structure(c(2L,
1L, 2L, 1L), .Label = c("No", "Yes"), class = "factor")), row.names = c(NA,
4L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
Freq group Survived
1 41 A Yes
2 31 A No
3 11 B Yes
4 0 B No
Run Code Online (Sandbox Code Playgroud)
我尝试遵循https://data-flair.training/blogs/chi-square-test-in-r/但我不确定如何使用这些数据。例如,当我使用时chisq.test(df$group, df$Survived)我收到
> chisq.test(df$group, df$Survived)
Pearson's Chi-squared test
data: df$group and df$Survived
X-squared = 0, …Run Code Online (Sandbox Code Playgroud) 我有一个函数,将整数的嵌套列表(或列表列表)作为输入,并根据某种概率p1随机分配NA的值。我想扩展此功能以从列表中删除NA。
I know removing NAs is a common question on the internet and have reviewed the the questions on Stack Overflow and elsewhere, but none of the solutions work. In general, the questions posed do not refer to an actual list of lists.
I have tried:
#Example data
d<-list(1,3,c(0,NA,0),c(0,0))
e<-list(1,6,c(0,3,NA,0,NA,0),c(0,NA,0,1,0,0),1,NA,c(0,0))
f<-list(1,0)
L.miss<-list(d,e,f)
#Tests
test1<-lapply(L.miss,function(x) x[!is.na(x)]) #Doesnt work
test2<-lapply(L.miss,Filter,f=Negate(is.na)) #Doesnt work
test3<-lapply(L.miss,na.omit) #Doesnt work
Run Code Online (Sandbox Code Playgroud)
Below is the function I am using to assign the NA values (also, don't laugh if its …
我有一个数据集如下。当我使用 table1() 从中创建 table1 时,会给出一行用于缺失值。我想知道是否可以从变量之一(例如 var3)中排除“缺失行”。
我想这样做的原因是因为,在我的实际数据集中,我的住院时间是可变的。并非数据集中的所有个人都在医院,因此这些患者没有丢失数据,他们只是没有此变量的数据,因为他们不在医院提供数据。
任何帮助将不胜感激,谢谢。
data <- data.frame(
var1 = c(1, 2, NA, 4, 5),
var2 = c("A", "B", NA, "D", "E"),
var3 = c(10, NA, 30, 40, 50)
)
table1(~var1 + var2 + var3, data=data)
Run Code Online (Sandbox Code Playgroud) 我很抱歉,因为肯定有很多类似的问题和答案,但我已经尝试了一堆建议的答案,遗憾的是没有骰子。
\n我在数据框(tempdata)的三列中获得了温度数据。为简单起见,我只是尝试一次更改这些位置之一(wentworth.castle)。
\n这就是我的数据的样子。所有带有“.castle”的列都是该站点的温度。存在缺失值,但这是预期的。希望把他们变成NA。
\nglimpse(tempdata)\nRows: 3,395\nColumns: 5\n$ Description <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", \xe2\x80\xa6\n$ date.time <chr> "22/11/2023 09:48", "22/11/2023 10:18", "22/11/2023 10:48", "22/11/2023 11:\xe2\x80\xa6\n$ site.castle <chr> "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",\xe2\x80\xa6\n$ dover.castle <chr> "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",\xe2\x80\xa6\n$ wentworth.castle <chr> …Run Code Online (Sandbox Code Playgroud) 我有以下数据:
x <- data.frame('myvar'=c(10,10,9,9,8,8, runif(100)), 'mygroup' = c(rep('a', 26), rep('b', 80)))
Run Code Online (Sandbox Code Playgroud)
我想使用 ggplot2 中的盒须图来描述数据。我还使用 stat_summary 包含了平均值。
library(ggplot2)
ggplot(x, aes(x=myvar, y=mygroup)) +
geom_boxplot() +
stat_summary(fun=mean, geom='point', shape=20, color='red', fill='red')
Run Code Online (Sandbox Code Playgroud)
这很好,但对于我的一些图表来说,异常值是如此之大,以至于很难理解总分布。在这些情况下,我切割了 x 轴:
ggplot(x, aes(x=myvar, y=mygroup)) +
geom_boxplot() +
stat_summary(fun=mean, geom='point', shape=20, color='red', fill='red') +
scale_x_continuous(limit=c(0,5))
Run Code Online (Sandbox Code Playgroud)
请注意,现在仅使用图表上可见的数据子集来计算平均值(和中位数?)。有没有办法ggplot将异常值观测值包含在计算中,但将它们从可视化中删除?
我想要的输出是一个图表,其中 x 限制c(0,5)为 group ,红点为 2.48 mygroup='a'。
有人可以解释一下这里的 Or 运算符 (|) 是怎么回事吗?我只是想编写一个简单的函数来测试元素是否在向量中。但是,当我使用 | 传递两个都不在向量中的值时 运算符它给了我一个误报(见最后一行)。其他一切似乎都按预期进行......
v <- c(1,2,3)
if (1 %in% v){print('present')}else{print('not present')}
# [1] "present"
if (1&2 %in% v){print('present')}else{print('not present')}
# [1] "present"
if (1|2 %in% v){print('present')}else{print('not present')}
# [1] "present"
if (4 %in% v){print('present')}else{print('not present')}
# [1] "not present"
if (1&4 %in% v){print('present')}else{print('not present')}
# [1] "not present"
if (1|4 %in% v){print('present')}else{print('not present')}
# [1] "present"
if (4&5 %in% v){print('present')}else{print('not present')}
# [1] "not present"
if (4|5 %in% v){print('present')}else{print('not present')}
#[1] "present"
Run Code Online (Sandbox Code Playgroud) 例如,假设我有两个不同尺度的变量;
df = data.table::data.table(
date = seq(from = lubridate::ymd("2010-01-01"),
to = lubridate::ymd("2020-01-01"), length = 100),
var1 = rpois(n = 100, lambda = 84),
var2 = rpois(n = 100, lambda = 300)
)
Run Code Online (Sandbox Code Playgroud)
如果我决定使用双 y 轴图,请使用代码;
library(ggplot)
df |>
ggplot(aes(x = date)) +
geom_line(aes(y = var1), col = "royalblue") +
geom_line(aes(y = var2), col = "red") +
scale_y_continuous(
name = "var1",
sec.axis = sec_axis(~., name = "var2")
) +
theme_light()
Run Code Online (Sandbox Code Playgroud)
结果如下;
如何调整第二个 y 轴的限制,例如从 250 开始到 400 结束?这将使线条更加靠近,从而可以更清晰地了解趋势。
我知道这可能是一个愚蠢的问题,但我很好奇是否有任何区别,我更喜欢使用 str_detect 因为语法在我的大脑中更有意义。
r ×10
dplyr ×2
ggplot2 ×2
chi-squared ×1
counting ×1
gsub ×1
html-table ×1
statistics ×1
stringr ×1
temperature ×1
tidyselect ×1