小编jps*_*ith的帖子

在 csv 中写入数据帧时,“‘EncodeElement’中未实现类型‘列表’”

我有下面的数据框

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”**

但如果我删除矩阵列,那么它就会成功写入。

我知道这将是非常基本的,但是有人可以解释这背后的原因吗?

r

3
推荐指数
1
解决办法
7945
查看次数

计算单词的出现次数,但每行仅计算一次 (R)

我想计算一个单词出现的次数,但每行只出现一次。我如何完成代码?

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。

r counting

3
推荐指数
1
解决办法
120
查看次数

如何使用这些数据运行 chisq.test() ?

我有这些数据:

> 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)

statistics r chi-squared

3
推荐指数
1
解决办法
55
查看次数

从功能中的R中的列表列表中删除NA

我有一个函数,将整数的嵌套列表(或列表列表)作为输入,并根据某种概率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 …

r

2
推荐指数
1
解决办法
52
查看次数

如何在 R 中省略 table1 中的缺失值行

我有一个数据集如下。当我使用 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)

r html-table data-cleaning data-wrangling

2
推荐指数
1
解决办法
1462
查看次数

如何删除R中除数字元素之外的所有内容

我很抱歉,因为肯定有很多类似的问题和答案,但我已经尝试了一堆建议的答案,遗憾的是没有骰子。

\n

我在数据框(tempdata)的三列中获得了温度数据。为简单起见,我只是尝试一次更改这些位置之一(wentworth.castle)。

\n

这就是我的数据的样子。所有带有“.castle”的列都是该站点的温度。存在缺失值,但这是预期的。希望把他们变成NA。

\n
glimpse(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)

r temperature gsub dplyr

2
推荐指数
1
解决办法
71
查看次数

ggplot2 - 为什么改变轴刻度会影响变量的汇总统计?

我有以下数据:

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'

r ggplot2

1
推荐指数
1
解决办法
93
查看次数

或者运算符在 R 中的行为不符合预期

有人可以解释一下这里的 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)

r

1
推荐指数
1
解决办法
46
查看次数

有没有办法改变ggplot2中第二个y轴的比例限制?

例如,假设我有两个不同尺度的变量;

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 结束?这将使线条更加靠近,从而可以更清晰地了解趋势。

r ggplot2

1
推荐指数
1
解决办法
45
查看次数

使用 str_detect() 和 contains() 之间的区别?

我知道这可能是一个愚蠢的问题,但我很好奇是否有任何区别,我更喜欢使用 str_detect 因为语法在我的大脑中更有意义。

r stringr dplyr tidyselect

0
推荐指数
1
解决办法
79
查看次数