我正在尝试从这里执行代码: Change the class from factor to numeric of many columns in a data frame 在具有140列的数据帧中 cols = c(1:140);
merged_dataset[,cols] = apply(merged_dataset[,cols], 2, function(x) as.numeric(as.character(x))); 问题是对于某些列,我得到了NAs。有没有办法从代码中排除这些列,这样我就可以保留数据,而不会将它们转换为NAs?我看到这些列的类型是字符,如果这有帮助的话。
我正在编写一个函数,这样我就可以计算我感兴趣的列中的NAs的数量。下面,pts_au是一个平衡的国家-年份面板数据集,PTS_A是列名,Country.string是我想要作为条件的列。
> if (pts_au$Country.string == "China"){
+ sum(is.na(pts_au$PTS_A))
+ }
Warning message:
In if (pts_au$Country.string == "China") { :
the condition has length > 1 and only the firs
我有如下数据集
df<-data.frame(name=c("alicia","samantha","john","jessie"), age=c(40,-23,30,28), income=c(100, 50, 120,60))
我尝试做的是选择没有负值且值小于100的数据集。我试过了
df[(df[,c(2:3)]>=0&df[,(2:3)]<=100),]
但是我不能删除大于100的值,我得到了很多'NA's,如下所示。
# name age income
# 1
我有一个包含NAs的六列数据框架。我希望只选择那些包含最多三个NAs的行。我可以使用sum(is.na(my.df[,c(1:6)])),找到NAs的数量,但无法使用“子集”或任何其他函数选择数据帧的子集,并且条件sum(is.na(log.df[,c(1:6)])) <=3最终希望计算所选rows.The示例数据的中位数如下:
C1 C2 C3 C4 C5 C6
6.4 NA 6.1 6.2 NA NA
7.1 6.4 6.5 5.9 7 6.9
7.1 7 6.9 6.9 6.9 7
6.9 NA 6.9 NA 7.1 NA
6.8 NA 7.1 7.1 6.8 7.2
N
我的问题很简单,lapply有很多“答案”,它们给了我一些我不想要的东西。它们没有什么用处,因为我得到了一个列表,然后不得不执行另一个循环来获取数据帧,并且我遇到了同样的问题:使用序列化的名称一次创建几个数据帧。这就是为什么我要问一个新的问题。
我有一个excel文件与5个不同的工作表,我想创建5个不同的数据帧。
library(openxlsx)
ln=list()
for (i in 2:6)
{
ln[[i]]<-read.xlsx("File.xlsx", sheet=i-1, startRow=3)
}
然后,我知道我可以做到:
mo_1<-da
是这个模拟数据:
set.seed(20120220)
x <- c(rep("a", 4), rep("b", 4))
y <- c(sample(c(1, 2), 8, replace = TRUE))
z <- data.frame(cbind(x, y))
数据帧z将如下所示:
x y
1 a 1
2 a 1
3 a 1
4 a 2
5 b 2
6 b 1
7 b 2
8 b 2
我想运行类似于factor(z$y, levels = 1:2, labels = c("alpha", "beta"
我正在尝试用另一个数据帧的另一个子集替换另一个数据帧的子集。Evertyme我运行以下代码,不仅替换了列100:111。相反,所有列都将被替换。为什么会这样呢?对我来说,这没有任何意义。 if test_h.iloc[i, s] == 'F150Hz__nT100ms__B0__Pos25__0.8':
val = test_h.iloc[i, s:s+11]
test_h_format.iloc[i, 100:111] = val
尝试根据数据帧中的特定行条件用NA替换特定的列值。示例数据集(测试)和我尝试过的代码如下所示。注意,我的实际数据集要大得多,但实际上我需要用NA替换特定行(特定年份)中的特定列。在这个示例中,我尝试使用列索引来为2002年的第3:5列插入NAs,但结果是用NAs替换了列3:5中的所有值。我确实想使用列索引而不是列名,因为我的实际数据中有很多列。
test <- data.frame(YEAR=c(2000,2001,2002,2003,2004,2000,2001,2002,2003,2004),
zone=c('A','A','A'
我正在尝试操纵一个数据帧。数据帧包含缺失值(NA),我想将每个NAs‘替换为“。(字符串)。
我该怎么做呢?下面是一个示例:考虑以下数据帧
dataset1
no name
1 John
2 Paul
3 NA
4 Sophie
如何将此数据集更改为:
dataset1
no name
1 John
2 Paul
3 .
4 Sophie
谢谢,
我正在尝试映射数据帧列表,但我做错了一些事情。我的环境中有多个数据帧,我的目标是用NA值替换所有的空字符串,我正在做的事情如下: # create a list of my dataframes
lst <- ls()
lst<- lst[sapply(lst, function(x) is.data.frame(get(x)))]
# second, map my function on all of my dataframes
map(lst, ~.x %>% mutate_if(is.character, list(~na_if(.,"")))) 我
我有一个.csv文件形式的数据集(基本上是:人们对酒的选择与周围音乐播放的来源有关)。将其作为数据帧读取会导致如下所示的df: Music Wine
1 French French
2 Italian French
3 None Italian
4 Italian Italian
5 French Other
... 作为一个表,它看起来像这样: Wine
Music Other French Italian
French 35 39 1
None 4
我正在执行一个大型ffdf对象的子集,并且我注意到,当我使用subset.ff时,它正在生成大量NAs。我尝试了另一种方法,使用ff哪个,结果更快,也没有生成NAs。这是我的考验:
library(ffbase)
# deals is the ffdf I would like to subset
unique(deals$COMMODITY)
ff (open) integer length=7 (7) levels: CASH CO2 COAL ELEC GAS GCERT OIL
[1] [2] [3] [4] [5] [6] [7]
CASH CO2
我正在尝试编写一个循环来遍历数据帧并纠正不正确的值(由universal制作的EG喜剧片将其全球总票房放大1.1倍,而由派拉蒙制作的喜剧片将其国内总票房提高0.8美元)数据帧在不同的列中指定电影、流派、工作室和总票房 for (i in 1:nrow(movie_data)) {
movies <- movie_data[i,]
if (distributor == "Universal") {
if (genre == "Comedy") {
movies$worldwide_gross <- movies$world