빈 데이터 프레임 만들기

행이 없는 데이터 프레임을 초기화하려고 합니다. 기본적으로 각 열의 데이터 유형을 지정하고 이름을 지정하고 싶지만 결과적으로 행이 생성되지는 않기를 원합니다.

지금까지 제가 할 수 있었던 최선은 다음과 같습니다:

df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), 
                 File="", User="", stringsAsFactors=FALSE)
df <- df[-1,]

이는 제가 원하는 모든 데이터 유형과 열 이름을 포함하는 단일 행이 포함된 데이터 프레임을 생성하지만 쓸모없는 행을 생성하므로 제거해야 합니다.

이 작업을 수행하는 더 좋은 방법이 있나요?

해결책

빈 벡터로 초기화하기만 하면 됩니다:


df 
해설 (16)

, 가 이미 데이터 프레임을 let& # 39 의 경우 현존하는 'df' 라고 그냥 빈 데이터 프레임을 만들 수 있는 그런 운영까지도 열을 제거하여 모든 행:

empty_df = df[FALSE,]

데이터가 포함되어 있음을 알 수 있지만, 여전히 'df' ',' # 39 empty_df doesn& 없다.

이 질문에 내가 찾은 새 인스턴스를 생성하는 방법을 찾는 데 도움이 될 수 있기 때문에 일부 사람들은 행뿐만 비어 있는 것 같아요.

해설 (6)

열 유형을 지정하지 않고도 수행할 수 있습니다.

df = data.frame(matrix(vector(), 0, 3,
                dimnames=list(c(), c("Date", "File", "User"))),
                stringsAsFactors=F)
해설 (1)

다음과 같이 입력 'text'에 빈 문자열과 함께 read.table을 사용할 수 있습니다:


colClasses = c("Date", "character", "character")
col.names = c("Date", "File", "User")

df 
해설 (3)

이렇게 '구조' 를 사용하는 것이 가장 효과적인 방법은 목록을 만들 수 있는 클래스 ',' &quot, data.frame&quot.

structure(list(Date = as.Date(character()), File = character(), User = character()), 
          class = "data.frame")
# [1] Date File User
#  (or 0-length row.names)

이를 보면, s # 39 에 비해, 현재 수락됨 오토메이티드 here& 간단한 벤치마크:


s 
해설 (5)

그냥 너희가운데

table = data.frame()

할 때 "'라빈드"' 첫 번째 줄은 열의 생깁니다

해설 (3)

찾고 있다면 곤란.

read.csv(text="col1,col2")

39, 별도로 열 이름을 지정할 수 있도록 don& 필요한 건 아니다. 논리적 데이터 프레임을 칠합니다 기본 열 때까지 확보하십시오 유형.

해설 (3)

내가 만든 빈 데이터 프레임을 다음과 같은 코드를 사용하여

df = data.frame(id = numeric(0), jobs = numeric(0));

바인딩하도록 했고 일부 행뿐만 동일합니까 채우려면 다음과 같다.


newrow = c(3, 4)
df 
해설 (0)

스케쳐내 빈 다다드프라임 만들 수 있는 동적 이름 (콜나미스 변수로) 이 도움이 될 수 있습니다.


names 
해설 (0)
    • 빈 데이터 프레임을 만드는 데 필요한 행과 열의 수가 전달하십시오 꽂으십시오 다음과 같은 함수.

create_empty_table 
해설 (1)

39 don& 지정하지 않을 경우, 데이터 형식을 명시적으로 t mind, 할 수 있어 이렇게:


headers
해설 (0)

이런 ',' 을 (를 선언할 경우 많은 열이 다다드프라임 it& # 39, ll 아마도 모든 열 클래스뿐만 아웃해야 통증 직접 입력할 수 있습니다. 특히 '담당자별로 쉽고 빠르게 이용할 수 있는 경우, 이 방식은' (약 15%) 보다 다른 일반화 될 수 있는 솔루션이 이렇게):

'클래스' 가 벡터입니다 콜클라시스 원하는 열 경우, 다음과 같이 할 수 있습니다.

library(data.table)
setnames(setDF(lapply(colClasses, function(x) eval(call(x)))), col.names)

'결과' 이 목록에 있는 각 요소에 리플리 원하는 길이로, 숫자 () 는 단순히 입력되었는지 벡터입니다 like '빈' 또는 '정수 ()'.

'이' 목록 '에' 다다드프라임 참조별로 세드프 '는'.

'이름' 세나미스 필요한 추가하므로 참조별로.

속도 비교:


classes 
해설 (0)

'우리는 대한 데이터 형식 데이타스터블 사용하여 각 열은 지정할 수 있습니다.

library(data.table)    
data=data.table(a=numeric(), b=numeric(), c=numeric())
해설 (0)
  • 푸십시오 메타데이터입니다 다테프라임 이미 있을 경우 수 있습니다 (열 이름 및 유형) 을 다테프라임 (예를 들어 만약 틀렸다니까 제어을 버그가 * 어떤 특정 투입물 할 때만 트리거됨 함께 빈 더미 다테프라임):

"' colums_and_types 사파리 < - (df, class)

인쇄: &quot, c (& # 39, & # 39 col2& # 39 col1& # 39;;;;) &quot.

보기인쇄 (다푸스 (아스트커랙터 (이름 (colums_and_types))))

인쇄: &quot, c (& # 39, & # 39 factor& # 39 integer& # 39;;;;) &quot.

다푸스 (아스트커랙터 (라지브스 (colums_and_types))) "'

'다음' 빈 다테프라임 레더스터블 만드시겠습니까

"' 레더스터블 (text = &quot "; 콜클라시스 = c (& # 39, & # 39 factor& # 39 integer& # 39;;;;) 콜롬나미스 = c (& # 39, & # 39 col2& # 39 col1& # 39;;;;)) "'

해설 (0)

네 열 이름을 말하도다 동적입니다 빈 행일 release. 호환표에 및 변형 redhat. 데이터 프레임을 만들 수 있습니다.


nms 
해설 (1)

39 이 질문에 didn& 내 문제 (아웃라인된 here), t 구체적으로 해결할 수 있지만 누구나 할 수 있는 열 수 없고 이 경우 강제 패라메트릭화 것이다.

> require(dplyr)
> dbNames  emptyTableOut % 
    setNames(nm = c(dbNames))
> glimpse(emptyTableOut)
Observations: 0
Variables: 4
$ a  
$ b  
$ c  
$ d 

질문에 대한 데비비산 상태에 따라 링크됨

&gt. 원인 [강제] [때 케빈딩 호환표 및 해당 구성 유형은상위] .dell 테스트타사의 에로남이네 행렬을 가질 수 있습니다. &gt. 단일 데이터 유형:. 여전히 케빈드 때, 그 결과 2 호환표 &gt. 그래서 호환표에 com/go/4e6b330a_kr 모두 한 가지 종류의 강압 agent. 전에 &gt. 다다드프라임 로 변환

해설 (0)